Смекни!
smekni.com

Задание на курсовую работу 2 (стр. 5 из 6)

Э = (1.543*10-3 )/ (1.11*10-6) @ 1,39*103

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


6. Выбор оптимальной длины циклического кода

Найдем такой оптимальный код, который при заданной вероятности ошибочного приема комбинации циклического кода Рзад = 10-6 обеспечивал бы максимальную скорость передачи информации Rmax.

R получим по формуле : R=Rk *Ra ,

где Rk - скорость кода;

Ra - скорость алгоритма;

Rk=k/n;

Ra=1-(nh)1-a*Pно;

R=Rk *Ra

n.k

D

Pнo

Rk

Ra

R

1

15,11

3

9,64115E-05

0,7333

0,9897

0,725803

1

2

15,7

5

4,2142E-06

0,4667

0,9897

0,461875

3

15,5

7

8,32464E-07

0,3333

0,9897

0,329910

4

31,26

3

8,01287E-05

0,8387

0,9829

0,824394

2

5

31,21

5

1,75123E-06

0,6774

0,9829

0,665857

6

31,16

7

4,32419E-08

0,5161

0,9829

0,507319

7

63,57

3

6,58178E-05

0,9048

0,9720

0,879392

3

8

63,51

5

7,19233E-07

0,8095

0,9720

0,786824

9

63,45

7

8,87973E-09

0,7143

0,9720

0,694257

10

127,120

3

5,37573E-05

0,9449

0,9542

0,901602

4

11

127,113

5

5,8744E-07

0,8898

0,9542

0,849008

12

127,106

7

1,81315E-09

0,8346

0,9542

0,796415

13

255,247

3

4,37848E-05

0,9686

0,9254

0,896353

5

14

255,239

5

1,19616E-07

0,9373

0,9254

0,867321

15

255,231

7

3,69198E-10

0,9059

0,9254

0,838290

16

511,502

3

3,56131E-05

0,9824

0,8786

0,863146

6

17

511,493

5

4,86458E-08

0,9648

0,8786

0,847672

18

511,483

7

7,50734E-11

0,9472

0,8786

0,832197

Определение оптимальной длины блока

Как видно из данной графической зависимости (а также из предыдущей таблицы), длина блока n = 255 является оптимальной для аппаратуры передачи данных с РОС-НПБЛ.


7. РАЗРАБОТКА ПРОГРАММЫ.

7.1 Обзор методов программной реализации

Программная реализация циклических кодов на ЭВМ может быть осуществлена четырьмя способами: матричным, алгебраическим, табличным и проверочными соотношениями. Рассмотрим различные способы представления циклического кодирования.

7.1.1. Матричный способ представления циклического кодирования.

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

7.1.2. Представление циклического кода проверочными соотношениями.

Этот способ основывается на записи в памяти проверочных соотношений(синдромов), полученных по образующей G (для кодирования) или проверочной H (для декодирования) матрицы. Эти соотношения позволяют определить значения проверочных разрядов по информационным элементам. Проверочные соотношения получаются в общем виде путем умножения информационной комбинации на матрицу остатков R. Для нахождения проверочных элементов кода необходимо вычислить (n-k) сумм по mod2. Программная реализация этой процедуры заключается в следующем. В соответствии с (n-k) проверочными соотношениями формируются маски в виде двоичных комбинаций, на которые умножается (логическое "И") информационная комбинация. Результат логического умножения проверяется специальной командой на четность. Если результат содержит четное число единиц, то соответствующий проверочный элемент равен 0; если же результат нечетный, то 1. Процедура декодирования с обнаружением ошибок программно отличается лишь тем, что проверочные соотношения получаются в результате умножения принятой n- элементной комбинации в общем виде на транспонированную проверочную матрицу HT. В результате умножения будет получен синдром, который свидетельствует об обнаружении ошибок в случае его неравенства нулю.

7.1.3. Способ алгебраического кодирования.

В основе программной реализации такого способа циклического систематического (n,k) кода лежит известное правило получения проверочных элементов как остатка от деления одночлена xn-kf(x) на образующий полином Р(х) степени (n-k), где f(x) - полином исходной информационной комбинации длиной К разрядов. Алгебраическое декодирование программно реализуется аналогично с той лишь разницей, что на образующий полином делится вся n- элементная комбинация. По виду полученного в результате деления остатка обнаруживают и исправляют ошибки.

7.1.4. Табличный способ программной реализации процедуры кодирования.

При таком способе необходимо хранить для несистематических кодов всю кодовую таблицу, т.е. набор из 2k кодовых векторов, а для систематического циклического кода - таблицу из 2k- векторов проверочных элементов. При кодировании по принятой кодовой комбинации выбирается требуемый кодовый вектор или вектор проверочных элементов. При декодировании по принятой кодовой комбинации выбирается из таблицы путем сравнения кодовый вектор с наименьшим расстоянием относительно принятого. В случае только обнаружения ошибок процедура декодирования практически мало чем отличается от процедуры кодирования. По принятым информационным элементам выбирается соответствующий вектор проверочных элементов, который сравнивается с принятыми проверочными элементами. Если проверочные элементы не совпадают, то это свидетельствует об обнаружении ошибок.

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

Данная программа написана на языке Borland Pascal в интегрированной среде Borland Delphi 5.0 и предназначена для кодирования и декодирования циклического кода, путем представления циклического кода проверочными соотношениями.


Для запуска данной программы необходимо запустить файл opds.exe. При запуске данного файла перед пользователем появляется окно О создателях… (в котором можно найти информацию о данном программном продукте: название, фамилию технического руководителя, а также студента, осуществлявшего программную реализацию проекта).

После нажатия кнопки “дальше …”, открывается диалоговое окно, в котором, с помощью контекстного меню, возможно выбрать вид обнаруживающего полинома P(x) – по умолчанию задан полином p(x) = x10+x9+x7+x1+1 согласно варианту задания, а также просмотреть значения матриц (образующей матрицы в канонической виде и матрицы проверок), которое становится возможным только после задания Р(х). Затем в разрядах информационной комбинации вводится то число которое мы хотим закодировать и нажав кнопку “послать комбинацию”, осуществляем кодировку последовательности. При этом в разрядах принятой комбинации мы можем наблюдать информационную комбинацию с десятью проверочными разрядами.

Также предоставляется возможность пользователю вводить значение полинома ошибок. При этом после “посылки комбинации”, выводится значение принятой комбинации, а также результат декодирования (принята комбинация с