АЛМАТИНСКИЙ ИНСТИТУТ ЭНЕРГЕТИКИ И СВЯЗИ

Кафедра инженерной кибернетики

 

Основы сбора и передачи информации

  

Методические указания к выполнению расчетно-графических работ

для специальности 050702 – Автоматизация и управление

  

Алматы 2007

СОСТАВИТЕЛИ: Ю.В. Шевяков, Ш.М. Байматаева. Основы сбора и передачи информации. Методические указания к выполнению расчетно-графических работ для студентов очной формы обучения специальности 0500702 – Автоматизация и управления. – Алматы: АИЭС, 2007. – 11с.

          Рассмотрены методы исправления одиночных ошибок и нахождения двойных ошибок при построении циклических кодов, построение кодирующих устройств для заданного циклического кода. Построение кодирующих устройств для заданного циклического кода осуществляется в среде программной системы System View.

         Методические указания предназначены для студентов специальности 0500702 – Автоматизация и управления.

   1 Расчетно-графическая работа №1. Построение циклических кодов

          Согласно определению циклического кода   все многочлены, соответствующие его разрешённым кодовым комбинациям, должны делиться на образующий многочлен g(x) без остатка. Для этого достаточно, чтобы на g(x) делились без остатка многочлены, составляющие образующую матрицу кода. Последние получаются циклическим сдвигом, что соответствует последовательному умножению g(x) на x  с приведением по модулю xn+1.

         Следовательно, в общем случае многочлен gi(x) является остатком от деления произведения g(x)*xi на многочлен xn+1 и может  быть записан так

 

 

где с=1, если степень g(x)xi превышает n-1, С=0,  в противном случае.

         Отсюда следует, что все многочлены кода будут делиться на g(x) без остатка в том случае, если на g(x) будет делиться без остатка многочлен xn+1.

         Таким образом, чтобы g(x) мог породить циклический код, он должен быть делителем многочлена xn+1.

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

         Наибольшее число остатков, равное 2m-1, может обеспечить только неприводимый многочлен, который делится сам на себя и не делиться ни на какой другой многочлен.

          Исправление одиночных или обнаружение двойных ошибок.  Прежде чем исправить одиночную ошибку в принятой комбинации из n разрядов, необходимо определить какой из разрядов был искажен. Это можно сделать только в том случае, если каждой одиночной ошибке в определенной разряде соответствуют свой класс вычетов или опознаватель. Так как в циклическом коде опознавателями ошибок являются остатки от деления многочленов на образующий многочлен кода g(x), то g(x) должно обеспечить требуемое число различных остатков при делении векторов ошибок с единицей в искаженном разряде. Как отмечалось, наибольшее число остатков дает неприводимый многочлен. При степени многочлена m=n-k он может дать 2n-k-1 ненулевых остатков (нулевой остаток является опознавателем безошибочной передачи).

         Следовательно, необходимым условием исправления любой одиночной ошибки является выполнение неравенства

 

где Сn – общее число разновидностей одиночных ошибок в кодовой комбинации из n  символов; отсюда находим степень образующего многочлена кода

 

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

 Т а б л и ц а 1.1 

m

1

2

3

4

5

6

7

8

9

10

n

1

3

7

15

31

63

127

255

511

1023

k

0

1

4

11

26

57

120

27

502

1013

         Доказано, что любой двучлен типа x2m-1+1=xn+1 может быть представлен произведением всех неприводимых многочленов, степени которых являются делителями числа m (от 1 до m включительно). Следовательно, для любого m существует по крайней мере один неприводимый многочлен степени m, входящий сомножителем в разложение двучлена xn+1.

          Пример - Выберем образующий многочлен для случая n=15 и m=4.

         Двучлен x15+1 можно записать в виде произведения всех неприводимых многочленов, степени которых являются  делителями числа 4. Последнее делится на 1 ,2,4.

         В таблице неприводимых многочленов находим один многочлен первой степени, а именно x+1, один многочлен второй степени x2+x+1 и три многочлен четвертой степени: х4+х+1, х43+1, х432+х+1. перемножив все многочлены, убедимся в справедливости соотношения (х+1) x2+x+1)(х4+х+1)(х43+1)(х432+х+1)=х15+1.

Один из сомножителей четвертой степени может быть принят за образующий многочлен кода. Возьмем, например, многочлен х43+1, или в виде двоичной последовательности 11001.

         Чтобы убедиться, что каждому вектору ошибки соответствует отличный от других остаток, необходимо поделить каждый из этих векторов на 11001.

         Векторы ошибок m младших разрядов имеют вид:

 00…0001, 00…0010, 00…0100, 00…1000.

          Степени соответствующих им многочленов меньше степени образующего многочлена g(x).  Поэтому они сами являются остатками при нулевой целой части. Остаток, соответствующий вектору ошибки в следующем старшем разряде, получаем при делении 00…10000 на 11001,т.е.:

         10000

11001

         1001

         Аналогично могут быть найдены и остальные остатки. Однако их можно получить проще, деля на g(x) комбинацию в виде единицы рядом с нулями и выписывая все промежуточные остатки:

         10000000000…  11001                                         Остатки

         11001                                                                  1001

         10010                                                                  1011

         11001                                                                  1111

           10110                                                                0111

           11001                                                                1110

             11110                                                              0101

             11001                                                              1010

                011100                                                         1101

                  11001                                                         0011

                  010100                                                       0110

                      11001                                                     1100

                      11010                                                     0001

                         11001                                                  0010           

                             0011000                                           0100

                                 11001                                           1000

                                    0001000

  

         При последующем делении остатки повторяются.

         Таким образом, мы убедились в том, что число различных остатков при выбранном g(x) равно n=15, и следовательно, код, образованный таким g(x), способен исправить любую одиночную ошибку.  С тем же успехом за образующий многочлен кода мог бы принят и многочлен х4+х+1. При этом был бы получен код, эквивалентный выбранному.

         Однако, использовать для тех же целей многочлен  (х432+х+1) нельзя. При проверке числа различных остатков обнаруживается, что их у него не 15, а только 5. Действительно,

 


         10000000000…   11111           Остатки

         11111                                      1111

           11110                                    0001

           11111                                    0010

         00010000                                 0100

                                                        1000

 

         Это объясняется тем, что многочлен х432+х+1 входит в разложение не только двучлена х15+1, но и двучлена х5+1.

         Задание 1. Проверить обеспечивает ли заданный многочлен требуемое число остатков. Варианты заданий выбираются по порядковому номеру студента в списке группы.

 

Т а б л и ц а 1.2

 

№ варианта

Двучлен

Образующий многочлен

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

Х3+1

x7+1

x7+1

x15+1

x15+1

x15+1

x31+1

x31+1

x31+1

x31+1

x31+1

x31+1

x63+1

x63+1

x63+1

x63+1

x63+1

x63+1

x63+1

x63+1

x63+1

х127+1

х127+1

х127+1

х127+1

х2+х+1

x3+x+1

x3+x2+1

x4+x+1

x4+x3+1

x4+x3+x2+x+1

x5+x2+1

x5+x3+1

x5+x3+x2+x+1

x5+x4+x2+x+1

x5+x4+x3+x+1

x5+x4+x3+x2+1

x6+x+1

x6+x3+1

x6+x4+x2+x+1

x6+x4+x3+x+1

x6+x5+1

x6+x5+x2|+x+1

x6+x5+x3+x2+1

x6+x5+x4+x+1

x6+x5+x4+x2+1

x7+x+1

x7+x3+1

x7+x32+х+1

x7+x4+1

 

Задание 2

 Для заданного образующего многочлена построить циклический код с обнаружением одиночной ошибки. Вариант образующего многочлена  такой же как и в первом задании.

 2 Расчётно-графическая работа №2. Построение кодирующих устройств для заданного циклического кода

 Все известные кодирующие устройства для любых типов циклических кодов, выполненные на регистрах сдвига, можно свести к двум типам схем. Схемы первого типа вычисляют значения проверочных символов путем непосредственного деления многочлена а(х)хm на образующий многочлен g(x). Это делается с помощью регистра сдвига, содержащего n-k разрядов (рисунок 2.1). В данной схеме коэффициенты кодируемого многочлена участвуют в обратной связи не через n-k сдвигов, а сразу с первого такта. Это позволяет устранить разрыв между информационными и проверочными символами. В исходном состоянии ключ K1 находится в положении 1.

Информационные символы одновременно поступают как в линию связи, так и в регистр сдвига, где за k тактов образуется остаток. Затем ключ К1 переходит в положение 2 и остаток поступает в линию связи.

 

Рисунок 2.1 – Обобщенная структурная схема кодера циклического кода

 

 

 

Рассмотрим процесс деления многочлена а(х)хm= (x+1)x на многочлен

g(x) = x3+x2+ 1 за k тактов.

 

Рисунок 2.2 – Структурная схема кодера циклического кода с образующим многочленом g(x)=x3+x2+1

 

 

Схема кодирующего устройства для заданного g(x) приведена на рисунке 2.2. Процесс формирования кодовой комбинации шаг за шагом представлен в таблице 2.1, где черточками отмечены освобождающиеся ячейки, занимаемые новыми информационными символами. С помощью схем второго типа вычисляют значения проверочных символов как линейную комбинацию информационных символов, т. е. они построены на использовании основного свойства систематических кодов. Кодирующее устройство строится на основе k-разрядного регистра сдвига (рисунок 2.3). Выходы ячеек памяти подключаются к сумматору в цепи обратной связи в соответствии с видом генераторного многочлена

 

                               

В исходном положении ключ K1 находится в положении 1.  За первые k тактов поступающие на вход информационные символы заполняют все ячейки регистра. После этого ключ переводят в положение 2. На каждом из последующих тактов один из информационных символов выдается в канал связи и одновременно формируется проверочный символ, который записывается в последнюю ячейку регистра. Через n-k тактов процесс формирования проверочных символов заканчивается, и ключ K1 снова переводится в положение 1.

 

Рисунок 2.3 – Структурная схема кодера циклического кода с сумматорами в цепи обратной связи

 

Т а б л и ц а  2.1

 
 


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

                          

 

Соответствующая h(x) схема кодирующего устройства приведена на рисунке 2.4.

Формирование кодовой комбинации поясняется в таблице 2.2. Оно начинается после заполнения регистра информационными символами.

Рисунок 2.4 – Кодер циклического кода с сумматорами в цепи обратной связи

 
                    

Т а б л и ц а 2.2

 
 


 

Задание:

а) вариант образующего многочлена остаётся таким же как и в РГР№1;

б) в среде программной системы  System Veiw построить кодирующее устройство на основе формирования кодовой комбинации с использованием генераторного многочлена;

в) использовать схему crc_encoder.svu для модификации при построении кодирующего устройства;

г) сравнить код (РГР№1) с полученным на модели.

Литература 

1.     Гоноровский И.С.  Радиотехнические цепи и сигналы. – М.: Радио и связь, 1994.

2.     Дмитриев В.И. Прикладная теория информации. – М.: Высшая школа, 1989.

3.     Назаров М.В. и др. Теория передачи сигналов. – М.: Связь, 1980.

4.     Зюко А.Г. Теория передачи сигналов. – М.: Радио и связь, 1986.

5.     Баскаков С.И. Радиотехнические цепи и сигналы. – М.: Высшая школа, 2000.

6.     Разевиг В.Д., Лаврентьев Г.В., Златин И.Л. SystemView средство системного проектирования радиоэлектронных устройств - М.: Горячая линия-Телеком, 2002.

7.     Гаранин М.В., Журавлев В.И., Кунегин С.В. Системы и сети передачи информации. - М.: Радио и связь, 2000.

8.     Телекоммуникационные системы и сети: Учебное пособие.-Под. ред. В.П. Шувалова.-М.: Горячая линия -Телеком, 2003.

9.     Передача дискретных сообщений: Учебник/Под ред. В.П. Шувалова. - М.: Радио и связь, 1990.