Циклические коды. Создание программы кодирования пересылаемого и декодирования полученного 4-разрядного двоичного числа

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

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

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

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

Кафедра ВТ

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

по дисциплине «Кодирование и передача данных»

« Циклические коды»

Факультет: АВТ                                         Преподаватель: Титов Г. И.

Группа: АМ-310

Студенты: Сергиенко С.А.

                   Бондарь А.В.

                   Чадов К.С.

Новосибирск, 2006

1. Задание

Составить программу кодирования пересылаемого и декодирования полученного 4-разрядного двоичного числа с использованием циклического кода с порождающим полиномом A. Результаты работы составленных функций по кодированию и декодированию числа сравнить с результатами эталонных функций.

2. Выполнение

Исходный текст функции encode

char encode(char value)

{

unsigned char a=value,g=13; // исходное число и порождающий полином (типа А)

for(int i=0;i<4;i++,a<<=1) if (((a>>3)&1)==1) a=a^g;

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

return (value<<3)|a;

}

Блок-схема алгоритма кодирования:

 


Рис.1 Блок-схема алгоритма кодирования

Исходный текст функции decode

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;

a<<=1;

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

}

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

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

return value>>3;

}

Блок-схема алгоритма декодирования:

 


 


Рис. 2. Блок-схема алгоритма декодирования


3. Выводы

Результаты выполнения процедур совпадают с эталонными, что говорит о правильности работы алгоритмов.

Циклический код позволяет выявлять и исправлять одинарную ошибку и отслеживать наличие двойной ошибки. Но данный код относится к числу простых: есть коды с большими корректирующими возможностями.

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

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