Лабораторная работа №3 «Кодирование-декодирование» Вариант №6



Скачать 36,58 Kb.
страница1/2
Дата01.03.2023
Размер36,58 Kb.
#204828
ТипЛабораторная работа
  1   2
Связанные:
Laboratornaya rabota 3 Ivanova Ekaterina IVTbd-14


Министерство науки и высшего образования Российской Федерации
ФГБОУ ВО Ульяновский государственный технический университет
Кафедра «Вычислительная техника»
Дисциплина «Основы информационных технологий»

Лабораторная работа №3


«Кодирование-декодирование»
Вариант №6

Выполнил студент


группы ИВТбд-14
Иванова Е.В.

Проверил(а)


Доцент кафедры «Вычислительная техника»
Валюх В.В.
Ульяновск, 2022
Общее задание.
Написать программу, осуществляющую следующие преобразования с двоичным сообщением:

  • Кодирование;

  • Декодирование;

  • Проверку на наличие ошибок в закодированном сообщении.

Задание по варианту.
Код Хэмминга (63,57).
Теоретическое описание метода кодирования и декодирования.
Кодирование происходит с помощью кода Хемминга. Биты записываются в таблицу, пропуская индексы совпадающие со степенью двойки. Далее необходимо составить комбинации кодирующих битов. Для этого для каждого индекса равного степени двойки начинаем «шагать» по сообщению, каждый шаг равен индексу, например для индекса 2, необходимо пропускать 2 клетки. Так же для каждого индекса записываем несколько битов (количество определяется самим индексом, например, для 4-ки мы записываем 4 бита, прерываясь на пробелах). После составления всех комбинации необходимо проверить четность. Если сумма единиц равна четному числу, то записываем в индекс, отвечающий за эту комбинацию, 0, иначе 1. Далее отправляем сообщение. Для декодирования данного сообщения снова записываем его в ту же таблицу, уже не пропуская разряды, далее выделяем новые комбинации и сравниваем четность пришедших с полученными, если все они совпадают, то ошибок нет, если не совпадают, то складываем индексы (1, 2, 4, 8 и т.д.), получая индекс ошибки. Далее исправляем ошибку, убираем проверочные биты, которые находятся на индексах равных степеням двойки, и выводим декодированное сообщение.

Пример
Нужно закодировать сообщение 1101. Запишем его в таблицу.

-

-

0

-

1

0

1

Теперь посчитаем комбинации. Для 0 степени: 011 => запишем в первую ячейку 0. Для 1 степени: 001 => запишем во вторую ячейку 1. Для 2 степени: 101 => запишем в четвёртую ячейку 0. Получаем данную таблицу.

0

1

0

0

1

0

1

Это и есть наше закодированное сообщение. Для декодировки сделаем ошибку в 5 бите, считая слева.

0

1

0

0

0

0

1

Теперь заново посчитаем комбинации, игнорируя степени двойки, то есть представим сообщение в таком виде:

-

-

0

-

0

0

1

Для 0 степени: 001 => в этой комбинации есть ошибка. Для 1 степени: 001 => в этой комбинации ошибки нет. Для 2 степени: 001 => в этой комбинации есть ошибка. Теперь сложим степени двойки тех комбинаций, которые пришли с ошибками. Это 0-ая степень и 2-ая, то есть 1 и 4. 1 + 4 = 5 => ошибка в 5 бите. Исправляем ошибку и выводим сообщение без битов, стоящих на индексах равных степеням двойки. Полученное сообщение: 1101.

Скачать 36,58 Kb.

Поделитесь с Вашими друзьями:
  1   2




База данных защищена авторским правом ©psihdocs.ru 2023
обратиться к администрации

    Главная страница