Сверточное кодирование

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Вµлям pprev, строит декодируемый путь (процедура decode). После чего отображает построенную сеть (функции printTree);

Рисунок 3.9 - Блок схема для алгоритма функционирования декодера

Рисунок 3.10 - Блок схема для алгоритма преобразования из двоичного кода в текстовое сообщение

Как видно из рисунка 3.10 исходный набор бит преобразуется в текстовое сообщение поблочно (по 8 бит - 1символ в ASCII представлении). На очередной итерации преобразования переменная sym (это будущий текстовый символ) сдвигается на 1 бит вправо (sym shr j), после чего к ней прибавляется очередной бит X. После того как в переменную sym попало 8 бит, результирующая строка конкатенируется с переменной sym.

На рисунках ниже приведена статистика по тестированию декодера при длине тестового сообщения 100 бит.

Рисунок 3.11 - Тестирование сверточного декодера:

Длина тестового сообщения - 100 бит; Вероятность ошибок: 0,05; Длина пачки ошибок: 1

Рисунок 3.12 - Тестирование сверточного декодера:

Длина тестового сообщения - 100 бит; Вероятность ошибок: 0,1; Длина пачки ошибок: 1

Рисунок 3.13 - Тестирование сверточного декодера:

Длина тестового сообщения - 100 бит; Вероятность ошибок: 0,05; Длина пачки ошибок: 2

Рисунок 3.14 - Тестирование сверточного декодера:

Длина тестового сообщения - 100 бит; Вероятность ошибок: 0,1; Длина пачки ошибок: 2

3.3 Обоснование выбора языка программирования

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

Данный программный продукт был написан в среде разработки Borland Delphi на языке Object Pascal. Borland Delphi 6.0 - это современный программный продукт, позволяющий создавать широкий спектр приложений для среды Microsoft Windows. Обоснованность данного выбора заключается в следующем:

-Позволяет быстро создавать (даже начинающим программистам) оконный интерфейс, имеющий профессиональный вид, для любых приложений, написанных на любом языке;

-Объектная ориентированность. Основным назначением применения в Delphi модели компонентов является обеспечение возможности многократного использования компонентов и создания новых.

Динамическая идентификация типа данных или интроспекция (возможность определить тип и структуру объекта во время выполнения программы).

Поддержка визуального проектирования

Поддержка методологии событийного программирования

Исходя из всего вышесказанного, выбранная среда разработки и язык программирования полностью удовлетворяют современным требованиям и являются удобным средством для программирования под ОС Windows.

3.4 Тестирование программы

В качестве примера закодируем сообщение ау (см. рисунок 4.15)

Рисунок 3.15 - Тестирование программы (кодирование)

В двоичном коде оно будет иметь вид:

А после кодирования сверточным кодером станет таким:

Так как вероятность ошибки была равная нулю (рисунок 3.7) то сообщение миновало канал без изменений и было декодировано верно.

Теперь попробуем внести в принятое сообщение одиночные ошибки канала (см. рисунок 3.16)

Рисунок 3.16 - Тестирование программы (имитация канала связи)

Как видно из рисунка 3.16 ошибки изменили веса вершин, но итоговый путь, построенный декодером (отмечен жирной линией) не изменился.

Теперь попробуем внести в сообщение двойные ошибки (рисунок 3.17)

Рисунок 3.17 - Тестирование программы (декодирование)

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

3.5 Быстродействие программы

На рисунке 3.18 изображен график зависимости скорости работы кодера в зависимости от длины входной последовательности

Рисунок 3.18 - Тестирование быстродействия кодера

На рисунке 3.19 изображен график зависимости скорости работы декодера в зависимости от длины декодируемой последовательности

Рисунок 3.19 - Тестирование быстродействия декодера

Как видно из графиков 3.18 и 3.19 графики зависимости быстродействия кодера и декодера имеют линейный характер. Исходя из графиков получается, что средняя скорость кодирования 0,016 мс/бит, а скорость декодирования составляет 0,0053 мс/бит. Что является довольно не плохим показателем для поточного кодера/декодера.

Заключение

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

Перед тем как, началась разработка алгоритма программы, было проведено изучение алгоритма сверточного кодирования, в соответствии с которым была разработана блок схема алгоритма программы.

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

В разделе технико-экономического обоснования были рассчитаны затраты на создание данного ПО и определена его цена - 6723 грн. Капитальные затраты для разработчика составили 3630 грн. Рентабельность да