Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIChKA_laby_DM.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.58 Mб
Скачать
      1. Построение циклического кода

Информационная кодовая комбинация G(x) степени (k-1) умножается на одночлен x n-k и прибавляется R(x) - остаток от деления данного произведения на образующий многочлен Р(х) степени ρ:

F(x) = x n-k×G(x)  R(x)

Т.о. первые k символов полученной кодовой комбинации будут совпадать с информационными символами.

Пример:

Пусть k = 12. Построить циклический код с помощью образующего многочлена пятой степени Р(х) = х5  х4  х2  1.

Пусть G(x) = х10  х6  х4  х3 1, т.е. G(x) = 010001011001. Найти F(x).

Решение

Находим произведение x n-k× G(x) = х5 × G(x) = х5 × (х10  х6  х4   х3 1) = х15  х11  х9  х8  х5

Получаем частное G(x) × x n-k х15  х11  х9  х8  х5

--------------------- = -------------------------------------------------

Р(х) х5  х4  х2  1

Остаток будет: R (x) = х4  х2  1.

Т.о. кодовая комбинация будет: х15  х11  х9  х8  х5  х4  х2  1 =

= 010001011001 10101

------------------ -------

k ρ

      1. Исправление ошибок в циклическом коде

Производится по остаткам от деления принятой комбинации на образующий многочлен Р(х): если принятая комбинация делится на Р(х) без остатка, то код принят без ошибок. При наличии остатка определяют его вес .

Если    (число исправляемых ошибок), то F(x)  остаток = правильная кодовая комбинация.

Если   , то циклически сдвигаем полученную кодовую комбинацию влево на один разряд. Полученную комбинацию делим на образующий многочлен Р(х). Определяем вес остатка .

Если   , то сдвинутая комбинация  остаток. Сдвигаем вправо циклически на один разряд и получаем правильную кодовую комбинацию.

Если   , то циклически сдвигаем сдвинутую кодовую комбинацию влево на один разряд. Полученную комбинацию делим на образующий многочлен Р(х). Определяем вес остатка .

И так до тех пор пока не подучим   .

Пример: F(x) = 1000110. P(x) = х3  х  1.

Исправить ошибку при ее наличии.  = 1.

Решение

1.

1000110

1011

1011

1011

1111

1011

1000

1011

11

 =2.   .

Сдвигаем F(x) влево на один разряд: 0001101

2.

0001101

1011

1011

1

0110

 =2.   .

Сдвигаем F(x) влево на один разряд: 0011010

3.

0011010

1011

1011

1011

1100

1011

111

 =3.   .

Сдвигаем F(x) влево на один разряд: 0011010

4.

0110100

1011

1011

1011

1100

1011

1110

1011

101

 =2.   .

Сдвигаем F(x) влево на один разряд: 0011010

5.

1101000

1011

1011

1011

1100

1011

1110

1011

1010

1011

1

 =1.  = .

Суммируем по модулю два: 1101000  1 = 1101001.

Циклически сдвигаем вправо на 4 разряда и получаем исправленную комбинацию: 1001110.

    1. Выполнение работы

Каждый студент получает номер задания для написания программы, реализующей конкретную задачу. Инструментарий не ограничивается.

Программа должна предусматривать ввод информационных символов, ввод образующей матрицы или многочлена, выдачу результатов.

    1. Содержание отчета

1. Наименование и цель работы

2. Краткие теоретические сведения

3. Описание программы

4. Схема алгоритма

5. Текст программы

6. Контрольный пример

7. Выводы

    1. Контрольные вопросы

1. Что такое коды ОНК?

2. В чем различие методик Шеннона-Фано и Хаффмена?

3. Основные шаги построения помехоустойчивых кодов.

4. Этапы нахождения ошибок в линейном систематическом коде, коде Хэмминга, циклическом коде.

  1. ЛАБОРАТОРНАЯ РАБОТА № 5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]