Вы находитесь на странице: 1из 8

ПЕРВОЕ ВЫСШЕЕ ТЕХНИЧЕСКОЕ УЧЕБНОЕ ЗАВЕДЕНИЕ РОССИИ

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение


высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОРНЫЙ УНИВЕРСИТЕТ»

Кафедра электронных систем

ОТЧЕТ ПО ПРАКТИЧЕСКОМУ ЗАНЯТИЮ №6

По дисциплине Прикладная теория информации


(наименование учебной дисциплины согласно учебному плану)

Тема работы Циклические коды

Выполнил: студент гр. .


(шифр группы) (подпись) (Ф.И.О.)

Оценка:

Дата:

Проверил
руководитель работы: .
(должность) (подпись) (Ф.И.О.)

Санкт-Петербург
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1) По заданному для циклического (n, k)-кода (n = 15) порождающему многочлену g(x)


определить:

а) количество информационных элементов k;

Порождающий полином кода по таблице 1.1:

g ( x )=1+ x 3+ x 4

n=15

r =n−k=¿ k=n−r=15−4=11

k =11

б) проверочный многочлен h(x);

x n+1 x 15+1
h ( x )= =
g ( x ) 1+ x 3+ x 4

x 15+1 x 4 + x 3 +1
⨁ x 11 + x 10+ x 9 + x 8 + x 6+ x 4 + x 3+1
x + x 14 + x 11
15

x 14+ x11 + 1

x + x13 + x 10
14

x 13+ x 11 + x 10 +1


0

h ( x )=x 11 + x 10+ x 9 + x 8 + x 6 + x 4 + x 3+1

в) порождающую и проверочную матрицы несистематического кода:


1 0 0 1 1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 1 1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 1 0 0 1 1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 1 1 0 0 0 0 0 0
G ns
(11,15)=¿
0 0 0 0 0 1 0 0 1 1 0 0 0 0 0
0 0 0 0 0 0 1 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 0 0 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 1 0 0
0 0 0 0 0 0 0 0 0 1 0 0 1 1 0
0 0 0 0 0 0 0 0 0 0 1 0 0 1 1

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
ns
H =¿
(4,15)
0 1 1 1 1 0 1 0 1 1 0 0 1 0 0
0 0 1 1 1 1 0 1 0 1 1 0 0 1 0
0 0 0 1 1 1 1 0 1 0 1 1 0 0 1

г) порождающую и проверочную матрицы систематического кода:

G syst
(11,15)=P(11,4) E 11

Первая строчка матрицы P определяется как:

x4 x 4 + x 3 +1
⨁ 1
x + x 3 +1
4

x 3+ 1

x 3+ 1=1∗x 0 +0∗x 1+ 0∗x 2 +1∗x 3={1 0 01 }

Соответственно вторая строчка матрицы P будет равна:

x5 x 4 + x 3 +1
⨁ x +1
x + x4 + x
5

x4 + x

x + x 3 +1
4

x 3+ x+1

x 3+ x+1=1∗x 0 +1∗x 1 +0∗x 2+1∗x 3={1 10 1 }


И таким образом получаем:

1 0 0 1 1 0 0 0 0 0 0 0 0 0 0
1 1 0 1 0 1 0 0 0 0 0 0 0 0 0
1 1 1 1 0 0 1 0 0 0 0 0 0 0 0
1 1 1 0 0 0 0 1 0 0 0 0 0 0 0
0 1 1 1 0 0 0 0 1 0 0 0 0 0 0
G syst
(11,15)=¿
1 0 1 0 0 0 0 0 0 1 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0 1 0 0 0 0
1 0 1 1 0 0 0 0 0 0 0 1 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 0 0 0 0 0 0 1 0
0 0 1 1 0 0 0 0 0 0 0 0 0 0 1

H syst
(4,15)=P(4,11) E 4

Первая строчка матрицы P определяется как:

x 11 x 11 + x 10+ x 9 + x 8 + x 6+ x 4 + x 3+1
⨁ 1
x + x + x + x 8 + x 6+ x 4 + x 3+1
11 10 9

x 10+ x 9 + x 8 + x 6 + x 4 + x 3+1

x 10+ x 9 + x 8 + x 6 + x 4 + x 3+1=1∗x 10 +1∗x 9 +…+1∗x 0={1 11 0 1 01 1 0 0 1}

Соответственно вторая строчка матрицы P будет равна:

x 12 x 11 + x 10+ x 9 + x 8 + x 6+ x 4 + x 3+1
⨁ x +1
x + x + x + x 9+ x 7 + x 5 + x 4 + x
12 11 10

x 11 + x 10+ x 9 + x 7 + x 5+ x 4+ x

x + x + x + x 8 + x 6+ x 4 + x 3+1
11 10 9

8 7 5 3
x + x + x + x + x+1

x 8 + x7 + x 5 + x 3 + x+1=0∗x10 +0∗x 9 +…+1∗x0 ={0 0 1 10 1 0 10 1 1}


И таким образом получаем:

1 1 1 0 1 0 1 1 0 0 1 1 0 0 0
syst
H =¿
(4,15)
0 0 1 1 0 1 0 1 0 1 1 0 1 0 0
0 1 1 1 1 0 1 0 1 1 0 0 0 1 0
1 1 1 1 0 1 0 1 1 0 0 0 0 0 1

2) Выбрать информационный полином u(x) из табл. 1.2 согласно номеру своего варианта.
Преобразовать выбранный полином в двоичный вектор u (младший бит слева), дополнив справа
нулями до нужного k.

u ( x )=1+ x 2+ x 3 + x 5

k =11

u={1 0 11 0 10 0 0 0 0 }

g ( x )=1+ x 3+ x 4

НЕ Систематическое
v ( x )=u ( x ) g ( x )=( 1+ x 2 + x 3+ x 5 ) ( 1+ x 3+ x 4 )={10 1 11 11 1 11 0 0 0 0 0 }
3. Закодировать полученный в предыдущем пункте информационный полином u(x)
несистематическим циклическим кодом.

4. Закодировать полученный в предыдущем пункте информационный полином u(x)


систематическим циклическим кодом. Вначале использовать порождающий полином, затем
порождающую матрицу G syst(15,k). . Результаты сравнить.

x 4 u ( x ) =x 9+ x 7 + x 6 + x 4

x 9 + x 7+ x 6 + x 4 1+ x 3+ x 4
⨁ x 5+ x 4 + x 2
x + x 8+ x 5
9

x 8 + x7 + x 6 + x 5 + x 4


x2

b ( x )=x 2
v ( x )=x 4 u ( x )+ b ( x ) =x9 + x 7 + x 6 + x 4 + x 2
v={ 0 0 1|0 10 1 10 1 0 0 0 0 0 }
0 0 1−проверочные символы
0 1 0 11 0 10 0 0 0 0−информационные символы

5. Наложить на полученную в предыдущем пункте кодовую комбинацию v(x)


систематического кода полином ошибки e(x) (табл. 1.3) и декодировать полученную комбинацию
r(x) вначале с использованием синдрома ошибки в крайнем правом разряде, а затем методом
оптимального декодирования на основе анализа веса. Результаты сравнить.

e ( x ) = x6
e= {0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }

g= { 10 0 1 1 }

v={0 0 1 0 10 1 1 01 0 0 0 0 0 }

r ={0 0 1 01 0 0 1 0 10 0 0 0 0 }

001010010100000 10011

10011
000011110100000

10011
01101100000
10011
0100000000
10011
000110000
10011
010110
10011
0010100
10011
0011100
10011
011110
10011
011010
10011
010010
10011
00001

Пришлось добавить 7 нулей ,значит ошибка находится на 7 месте.

Рассмотрим принцип оптимального декодирования

1. Ищем остаток от деления r на g:

0 0 1 01 0 0 1 0 10 0 0 0 0 1 0 0 11
0 0 0 1 01 ?
Вес остатка ω = 2 > t.

2. Сдвигаем r на разряд вправо 0 0 0 1 01 0 0 1 0 10 0 0 0и находим остаток:

0 0 0 1 01 0 0 1 0 10 0 0 0 1 0 0 11
10 0 0 11 ?
Вес остатка ω = 3 > t.

3. Сдвигаем на разряд вправо 0 0 0 0 1 01 0 0 1 0 10 0 0 и находим остаток:

0 0 0 0 1 01 0 0 1 0 10 0 0 1 0 0 11
1 0 0 01 0 ?
Вес остатка ω = 2 > t.

4. Сдвигаем на разряд вправо 0 0 0 0 0 1 01 0 0 1 01 0 0 и находим остаток:

0 0 0 0 0 1 01 0 0 1 01 0 0 1 0 0 11
100000 ?
Вес остатка ω = 1 ≤ t, следовательно, суммируем делимое с остатком:

0 0 0 0 0 1 01 0 0 1 01 0 0

100000
0 0 1 01 0 1 10 1 0 0
5. Поскольку мы трижды сдвигали исходный вектор вправо, сдвигаем его на три разряда
влево:

0 0 0 0 0 1 01 0 0 1 01 0 0 → 0 01 0 1 0 11 0 10 0 0 0 0

В результате получен исправленный кодовый вектор.