на практическое занятие - Ставропольский государственный

advertisement
Ставропольский государственный аграрный университет
Кафедра информационных систем
ЗАДАНИЕ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ
НА ПРАКТИЧЕСКОЕ ЗАНЯТИЕ
по учебной дисциплине «Инфокоммуникационные системы и сети» для
студентов направления 09.03.02 «Информационные системы и
технологии»
Занятие №1. Методы кодирования
Обсуждено на заседании кафедры
ИСиТ
“
”
2015 г.
Протокол №
Ставрополь, 2015 г.
УЧЕБНЫЕ И ВОСПИТАТЕЛЬНЫЕ ЦЕЛИ
1. Уметь рассчитывать помехоустойчивый циклический код.
2. Уметь представлять сигналы с помощью различных методов
модуляции
ВРЕМЯ – 180 минут.
УЧЕБНО-МАТЕРИАЛЬНОЕ ОБЕСПЕЧЕНИЕ
1. Методические разработки.
2. Класс ПЭВМ.
УЧЕБНЫЕ ВОПРОСЫ
ТЕОРЕТИЧЕСКОЯ ЧАСТЬ
Основные принципы помехоустойчивого кодирования.
Количество разрядов n кодовой конструкции называется длиной кода. Вес - это
количество единиц, содержащихся в кодовой конструкции. Степень отличия любых двух
кодовых конструкций характеризуется кодовым расстоянием d, оно выражается числом
позиций в которых одна кодовая конструкция (к.к.) отлична от другой. d определяется как
сумма по модулю два этих к.к.
+mod21101101
0010100
1111001 (w =5  d = 5
Ошибки появляющиеся в канале из-за помех проявляются в замене 0 на 1 и 1 на 0.
Ошибка в одном разряде называется однократной. Экспериментальные исследования
показали, что ошибки как правило группируются в пачке различной длины. Пачка ошибок
- это участок последовательности, начинающийся и кончающийся неправильно
принятыми символами. Внутри пачки могут быть и правильные символы. Для указания
места ошибки используют вектор ошибки (e). Вектор ошибки n - разрядного кода
представляет собой n - разрядную последовательность единицы в которой указывают
положение искаженных символов. Вес вектора ошибки we определяет кратность ошибки.
Сложение по модулю два искаженной к.к и вектора ошибки дают исходную
неискаженную комбинацию. Помехоустойчивое кодирование обеспечивается за счет
введения избыточности, т.е. из n символов к.к используется только k разрешенных.
Циклические коды
Циклические коды удобно рассматриввать не только в виде двоичного кода, но и в
полиномиальной форме. В соответствии с этим двоичная комбинация записывается в
виде степенного ряда аргумента х, а ее символы являются коэффициентами полинома.
6543210
В = 1101011 х6+х5+х3+х+1
Использование полиминомиальной формы позволяет свести действия над комбинациями
к действиям с полиномами.
Операции над полиномами:
1.Сложение
5
4
2
+ х +х +х +х
х3+х2+х+1
х5+х4+х3+1
2. Вычитание совершается аналогично.
3. Умножение полиномов производится по mod(хn+1), т.е. за результат берется остаток от
деления результата обычного умножения полиномов на двучлен хn+1
Пример: произвести умножение числа х5+х4+х2+х на полином х2+1. Причем в канале связи
используется шестиразрядный код - n = 6.
х5+х4+х2+х
х2+1
х7+х6+х4+х3
х5+х4+х2+х1
х7+х6+х3+х2+х| х6+1
х7+х
х+1
6
5
3
2
х +х +х +х
х6+1
х5+х3+х2+1 -результат.
Циклические коды задаются порождающими полиномами. Роль образующего
полинома выполняют неприводимые многочлены (делятся на себя и на единицу). Его
невозможно представить в виде произведения других полиномов. Если принять условие,
что порождающий полином Р(х) является делителем двучлена хn+1, то принадлежность
кодовой комбинации к разрешенным определяется безостаточным делением этой к.к. на
порождающий (образующий) многочлен.
Циклический код может быть получен путем умножения k -значного кода на
порождающий полином со степенью р = n - k.
Методика выбора порождающего полинома:
Порождающий полином выбирается из таблицы неприводимых полиномов, он должен
удовлетворять требованиям:
1. Степень порождающего полинома определяется количеством проверочных символов.
2. Вес полинома должен быть не менее d(min).
Методики получения разрешенных кодограмм циклического кода
1. Разрешенная кодограмма образуется путем умножения исходной комбинации k - 1
степени на порождающий полином.
(-) информационные символы перемешаны с проверочными
L(11) = 1011 = x3+x+1
B(11) = |L(11)*p(x)| +mod(xn+1) = x3+x+1
x3+x+1
x6+x4+x3
x4+x2+x
x3+x+1
x6+x2+1
B(11) = 1000101 -неразделенная к.к.
2. К.к. простого k - значного кода умножается на одночлен степени n-k
L(x)*x(n-k) =. После этого полученное произведение делится на порождающий многочлен,
т.е L(x)*x(n-k) = = остаток, который дописывается к исходной к.к.
Р(х)
3
2
L(13) = 1101 =x +x +1
(x3+x2+1)*x3 = x6+x5+x3
|x3+x+1
x6+x4+x3
x3+x2+x+1
5
4
x +x
x5+x3+x2
x4+x3+x2
x4+x2+x
x3+x
x3+x+1
1
B(13) = 1101001
Обнаружение и исправление ошибок в циклическом коде
Для обнаружения и исправления ошибок в кодограмме, принятой из канала, используется
порождающий полином. Если принятая циклическая кодограмма делится без остатка на
порождающий полином , то можно сделать вывод – данная кодограмма является
разрешенной. Если остаток от деления этой кодограммы отличен от нуля, то в данном
случае используется следующая методика обнаружения и исправления ошибок в
циклическом коде:
1. Обнаружение и исправление ошибок в циклическом коде производится по
остаткам от деления принятой комбинации на порождающий полином. Нулевой остаток
свидетельствует о правильности кодограммы. Для того, чтобы найти ошибочный разряд в
принятой
кодограмме
необходимо
выполнить
следующие
действия:
Принятую
комбинацию делят на порождающий полином.
2. Подсчитывают вес остатка Wост . Если вес остатка Wост меньше или равен
кратности исправляемых ошибок, то принятую комбинацию складывают по модулю 2 с
полученным остатком, Сумма дает исправленную комбинацию.
3. Если
Wост
больше
кратности
исправляемых
ошибок,
то
производят
циклический сдвиг принятой комбинации В(х) влево на один разряд. Комбинацию,
полученную в результате сдвига, делят на порождающий полином. Если в результате
повторного деления окажется, что вес остатка не превосходит кратность исправляемых
ошибок, то делимое суммируют с остатком и производят циклический сдвиг вправо на
один разряд. Полученная в результате комбинация уже не содержит ошибки.
4. Если после первого циклического сдвига и последующего деления остаток
получается с весом Wост превышающим кратность ошибки, то повторяют операцию по
пункту 3 до тех пор, пока не будет его вес меньше или равным кратности исправляемых
ошибок. В этом случае полученную в результате последнего циклического сдвига
комбинацию суммируют с остатком и производят циклический сдвиг вправо ровно на
столько разрядов, на сколько была сдвинута суммарная с последним остатком комбинация
относительно принятой комбинации В(х).
Рассмотрим пример декодирования запрещенной кодограммы.
Порождающий полином имеет следующий вид
Р(х) = х3+х+1.
Разделим полученную комбинацию 1110010 на порождающий полином, представленный
в двоичной виде (1011).
1110010 1011
1011
1010
1011
1 1 0 (Wост = 2 > 1)
Вес полученного остатка превышает кратность исправляемых ошибок.
Следовательно, согласно представленной методики, осуществляем
циклический сдвиг принятой комбинации В(х) влево на один разряд и
производим деление на порождающий полином. Получаем,
1100101 1011
1011
1111
1011
1000
1011
1 1 1 (Wост = 3 > 1)
Так как полученный остаток имеет вес равным трем, то произведем сдвиг полученной
комбинации еще на один разряд влево и разделим результат на порождающий полином.
Получаем,
1001011 1011
1011
1001
1011
1 0 1 (Wост = 2 > 1)
Проведем еще один сдвиг влево и полученную кодовую комбинацию
разделим на порождающий полином. Получаем,
10111 1011
1011
0 0 1 (Wост = 1 = 1)
Полученный остаток прибавляем к делимому и производим ровно столько же сдвигов
в вправо. В результате получим исходную разрешенную комбинацию 1100 010.
ЗАДАНИЕ НА ЗАНЯТИЕ
1. Представить исходную последовательность символов 1101100001011001 в
потенциальном коде без возвращения к нулю, биполярном коде с альтернативной
инверсией, биполярном импульсном коде, манчестерском коде, потенциальном коде
2B1Q. Результаты представить в виде временных диаграмм.
2. Получить список разрешенных кодовых комбинаций циклического кода (7,4) методом
циклического сдвига и линейного комбинирования, если задана одна из комбинаций
В1=0011101.
3. Обнаружить, какие из принятых кодовых комбинаций В1=0011010, В2=0010100,
В3=1010011 циклического кода, образующий полином которого F(x)=x3+x2+1 ошибочные.
Исправить однократные ошибки.
4. Представить исходную последовательность символов 11011000000110010111 методом
скрэмблирования согласно соотношения Bi = Ai  Bi-2  Bi-5.
5. Получить список разрешенных кодовых комбинаций циклического кода (7,4) методом
умножения на порождающий полином F(x)=x3+x+1.
6. Обнаружить, какие из принятых кодовых комбинаций В1=0101110, В2=0101100,
В3=1101110 циклического кода, образующий полином которого F(x)=x3+x2+1 ошибочные.
Исправить однократные ошибки.
7. Восстановить исходную последовательность по результирующей последовательности
11001101000111010101 на основании обратного соотношения Ci = Bi  Bi-2  Bi-5.
8. Получить список разрешенных кодовых комбинаций циклического кода (7,4) методом
деления на порождающий полином F(x)=x3+x2+1 и приписывания остатка.
9. Обнаружить, какие из принятых кодовых комбинаций В1=1001101, В2=1100101,
В3=1000101 циклического кода, образующий полином которого F(x)=x3+x+1 ошибочные.
Исправить однократные ошибки.
10. Представить исходную последовательность символов 1101100001011001 в
потенциальном коде без возвращения к нулю, биполярном коде с альтернативной
инверсией, биполярном импульсном коде, манчестерском коде, потенциальном коде
2B1Q. Результаты представить в виде временных диаграмм.
11. Получить список разрешенных кодовых комбинаций циклического кода (7,4) методом
циклического сдвига и линейного комбинирования, если задана одна из комбинаций
В1=1011001.
12. Обнаружить, какие из принятых кодовых комбинаций В1=1111010, В2=1100010,
В3=1101010 циклического кода, образующий полином которого F(x)=x3+x2+1 ошибочные.
Исправить однократные ошибки.
13. Представить исходную последовательность символов 11011000000110010111 методом
скрэмблирования согласно соотношения Bi = Ai  Bi-3  Bi-6.
14. Получить список разрешенных кодовых комбинаций циклического кода (7,4) методом
умножения на порождающий полином F(x)=x3+x2+1.
15. Обнаружить, какие из принятых кодовых комбинаций В1=1110111, В2=1101111,
В3=1111111 циклического кода, образующий полином которого F(x)=x3+x+1 ошибочные.
Исправить однократные ошибки.
16. Восстановить исходную последовательность по результирующей последовательности
11001101000111010101 на основании обратного соотношения Ci = Bi  Bi-3  Bi-6.
17. Получить список разрешенных кодовых комбинаций циклического кода (7,4) методом
деления на порождающий полином F(x)=x3+x+1 и приписывания остатка.
18. Обнаружить, какие из принятых кодовых комбинаций В1=1100101, В2=1101101,
В3=1000101 циклического кода, образующий полином которого F(x)=x3+x2+1 ошибочные.
Исправить однократные ошибки.
Download