Изучение принципов кодирования с использованием циклических кодов

Страницы работы

Содержание работы

Министерство образования и науки РФ

Новосибирский государственный технический университет

Кафедра вычислительной техники


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

по дисциплине “Кодирование и передача информации”

ЦИКЛИЧЕСКИЕ КОДЫ

Факультет: АВТ

Группа: АМ-609

Выполнили: Мартемьянов А.

                       Минина К.

Проверил: Титов Г. И.

Новосибирск, 2009г.


1.  Цель работы

Изучить принцип кодирования с использованием циклических кодов. Разработать функции кодирования и декодирования байта данных.

2.  Реализация функций

2.1 Функция кодирования

char encode(char value)

{

char v=value<<3;

char polynom=0x68;   //1101000

for(int i=0;i<4;i++){

if(!(v & (0x40>>i))){

    polynom>>=1;

    continue;

  }

  v=v ^ polynom;

  polynom>>=1;

}

return (value<<3) | v;

}

2.2 Функция декодирования

char decode(char value)

{

unsigned char a=value>>3;

unsigned char b[7]={0,1,5,2,3,6,4};

for(int i=0;i<4;i++)

{

  if (((a>>3)&1)==1)

    a=a^13; //1101

  a<<=1;

  a|=(value>>(2-i))&1;

}

if (i==4) a>>=1;

value^=1<<b[a-1];

return value>>3;

}

3. Результаты работы реализованных функций

3.1. Кодирование/декодирование без ошибок

Рисунок 1. Результаты работы  реализованных функций в случае отсутствия ошибок

3.2. Кодирование/декодирование в случае однократной ошибки

Рисунок 2. Результаты работы реализованных функций в случае однократной ошибки

3.3. Кодирование/декодирование в случае двойной ошибки

Рисунок 3. Результаты работы реализованных функций в случае двойной ошибки

Выводы

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

Похожие материалы

Информация о работе