2  Расчет параметров и характеристик

2.1  Выбор вида модуляции

Модуляция расширяет возможности передачи сообщений по следующим причинам:

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

2.  повышение достоверности передаваемых сигналов при использовании помехоустойчивых видов модуляции.

3.  повышается эффективность излучения сигнала при передаче по радиоканалу.

Существует 2 группы методов модуляции: непрерывные методы модуляции и импульсные методы модуляции.

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

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

При частотной модуляции значения 0 и 1 исходных данных передаются синусоидами с различной частотой – fo и fi. Этот способ модуляции не требует сложных схем и обычно применяется при не высоких скоростях. Строго говоря, спектр ЧМ - сигнала бесконечно велик и для точного воспроизведения сигнала нужна бесконечная ширина полосы. Однако боковые полосы частот имеют ничтожную энергию и ими можно пренебречь. Приближенно полосу частот ЧМ - сигнала можно найти по формуле:

НЕ нашли? Не то? Что вы ищете?

(1)

Сравнение амплитудной модуляции (АМ) и частотной (ЧМ) модуляций:

1.  техническая реализация АМ проще ЧМ.

2.  полоса частот при АМ значительно меньше, чем при ЧМ.

3.  помехоустойчивость ЧМ значительно выше АМ

При фазовой модуляции передаваемое сообщение изменяет свое значение фазы φ несущей. Значениям данных 0 и 1 соответствуют сигналы одинаковой частоты, но с различной фазой, например 0 и 180 градусов или 0,90,180 и 270 градусов. Так как при частотной модуляции индекс модуляции уменьшается с увеличением частоты сигнала, а при фазовой модуляции он не зависит от нее, то ширина полосы ФМ – сигнала оказывается больше, чем при частотной. Преимуществом ЧМ является также независимость коэффициента ошибок от сдвига частоты в канале (до ± 10 Гц) и скачков фазы (до 40°). Эти же возмущения в фазовых УПС приводят к появлению ошибок. Поэтому метод ЧМ является более предпочтительным при передаче информации по коммутируемым каналам ТЧ, а также по радио телефонным каналам связи.

В настоящее время широко используются комбинации и модификации этих методов модуляции. В частности, квадратурная модуляция (англ.: QAM - Quadrature Amplitude Modulation) - разновидность амплитудной модуляции сигнала, которая представляет собой сумму двух несущих колебаний одной частоты, но сдвинутых по фазе относительно друг друга на 90 градусов, каждая из которых модулирована по амплитуде своим модулирующим сигналом:

, где (2) I(t) и Q(t) - модулирующие сигналы и f0 - несущая частота.

Квадратурная модуляция применяется для передачи сигналов цветности в телевизионном стандарте PAL и NTSC, в стереофоническом радиовещании. Основана на передаче одним элементом модулированного сигнала n бит информации, где n = 4...8 (т. е. используются 16дискретных значений амплитуды). Однако для надежного различения этих значений амплитуды требуется малый уровень помех (отношение сигнал/помеха не менее 12 дБ при n = 4). При меньших отношениях сигнал/помеха лучше применять фазовую модуляцию с четырьмя или восемью дискретными значениями фазы для представления соответственно 2 или 3 бит информации. Тогда при скорости модуляции в 1200 бод (т. е. 1200 элементов аналогового сигнала в секунду, где элемент - часть сигнала между возможными сменами фаз) и четырехфазной модуляции скорость передачи данных равна 2400 бит/с. Используются также скорости передачи 4800 бит/с (при скорости модуляции 1600 бод и восьмифазной модуляции), 9600 бит/с и более при комбинации фазовой и амплитудной модуляций.

В задании на курсовой проект заданы АЧХ и ФЧХ канала (Таблица 2.1). Для них вычислим необходимые параметры сигнала.

Таблица 2.1 – Неравномерность остаточного затухания и характеристика группового времени прохождения при различных частотах.

F, кГц

0,1

0,3

0,5

0,7

0,9

1,1

1,3

1,5

1,7

1,9

2,1

2,3

2,5

Δa, Дб

12

10

6,3

4

1,9

0,7

0

0

0,05

0,05

0,1

0,2

0,3

Δτ, мс

2,18

2,13

1,95

1,57

1,25

0,85

0,45

0,3

0,13

0

0,05

0,08

0,14

F, кГц

2,7

2,9

3,1

3,3

3,5

3,7

3,9

4,1

4,3

4,5

4,7

4,9

Δa, Дб

0,4

0,5

0,6

0,7

0,8

0,9

1,6

4

6

8,1

10,2

12,2

Δτ, мс

0,2

0,29

0,29

0,43

0,57

0,84

1,35

1,76

2,03

2,12

2,35

2,37

По таблице построен график АЧХ канала (Рисунок 2.1). По графику АЧХ ниже уровня затухания равного 6 Дб, лежит диапазон частот 3770Гц. Таким образом, при однополосной амплитудной модуляции максимальная скорость модуляции равна Bmax = 2ΔF = 7540Гц. При двухполосных АМ, ФМ, ЧМ модуляциях Bmax ≈ ΔF = 3770Гц. Для удовлетворительной посылки сообщений на практике выбирают скорость сообщения несколько ниже теоретически рассчитанной, а именно при однополосной амплитудной модуляции максимальная скорость модуляции равна Bпр = 0,7 Bmax = 1,4ΔF = 5278Гц. При обычной АМ, ФМ, ЧМ модуляциях Bпр ≈ 0,7 Bmax = 0,7ΔF = 2639Гц.

Рисунок 2.1 – Характеристика неравномерности остаточного затухания канала

Групповое время запаздывания посылок. Δτгр доп пр = 1/Впр = 1/5278 = 0,189мс при однополосной АМ и Δτгр доп пр ≈ 1/Впр = 1/2639 = 0,379 мс при двухполосных АМ, ЧМ, ФМ.

Рисунок 2.2 – Характеристика группового времени прохождения сигнала

Рисунок 2.3 – Определение оптимальной скорости модуляции для двухполосных видов модуляции

Рисунок 2.4 – Определение оптимальной скорости модуляции для однополосной АМ

По заданию необходимо использовать двухполосные виды модуляции. ФЧХ и АЧХ канала не согласованы, поэтому необходимо ввести фазочастотный корректор, для определения оптимальной скорости модуляции в данном канале.

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

При корректировке ФЧХ сигнала для амплитудной, частотной модуляции требуется расширения полосы частот до 3790Гц. Корректированная характеристика группового времени прохождения изображена на рисунке 2.5. Решив новую систему уравнений B = 0,7ΔF и B = Ψ(ΔF) можно найти оптимальную скорость модуляции. Вопт = 3,15КГц. Из стандартного ряда скоростей модуляции выберем скорость модуляции В = 2,4КГц.

Рисунок 2.5 – Корректированная ФЧХ канала

Рисунок 2.6 – Определение оптимальной скорости модуляции после корректировки ФЧХ канала

Из ГОСТ ближайшей стандартной скоростью модуляции к вычисленной является B = 2400Бод.

При небольших скоростях передачи данных удовлетворяют АМ, ЧМ, ФМ модуляции. Частотная манипуляция (FSK) весьма помехоустойчива, поскольку помехи телефонного канала искажают в основном амплитуду, а не частоту сигнала. Однако при частотной манипуляции неэкономно расходуется ресурс полосы частот телефонного канала. Поэтому этот вид модуляции применяется в низкоскоростных протоколах, позволяющих осуществлять связь по каналам с низким отношением сигнал/шум. Частным случаем FSK является частотная манипуляция с минимальным сдвигом (MSK), при которой не происходит скачков фазы и изменение частоты происходит в моменты пересечения несущей нулевого уровня. MSK уникальна, потому что значение частот соответствующих логическим "0" и "1" отличаются на величину равную половине скорости передачи данных. Другими словами, индекс модуляции равен 0,5.

Допустим, что логическая единица будет модулироваться в гармонику с частотой 2400Гц, логический ноль – гармоникой с частотой 3600Гц. Тогда цифровой сигнал, изображенный на рисунке 2.7, преобразуется в манипулированный сигнал на рисунке 2.8. Для модуляции сигнала в данном проекте будет использоваться MSK.

Рисунок 2.7 – Некоторая кодовая последовательность

Рисунок 2.8 – Сигнал после частотной манипуляции

2.2  Выбор формата сообщения

Как уже упоминалось, для отделения одного пакета от другого каждый из них разделяется уникальным маркером. Эта комбинация содержит один байт, который имеет вид , т. е. содержит начальный 0 и 6 единиц подряд, после чего закрывается нулевым битом.

Для достижения прозрачности данных в этой схеме необходимо, чтобы флаг не присутствовал в поле данных кадра. Это достигается с помощью приема, известного как вставка 0 бита, бит–стаффинга. Схема вставки бита работает только во время передачи поля данных кадра. Если эта схема обнаруживает, что подряд передано, пять 1, то она автоматически вставляет дополнительный 0 (даже если после этих пяти 1 шел 0). Поэтому последовательность никогда не появится в поле данных кадра. Аналогичная схема работает в приемнике и выполняет обратную функцию. Когда после пяти 1 обнаруживается 0, он автоматически удаляется из поля данных кадра.

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

; , (3)

где l – размер маркера, s – количество допустимых ошибок в маркере.

Для достижении заданной помехоустойчивости был выбран маркер размера l = 32, s = 3. При таких значениях: Pлф = 1,278*10-6, а вероятность пропуска маркера Pпм = 3,506*10-8.

По заданию на курсовой проект при передаче данных нужно использовать CRC-контроль. Задан порождающий полином p(x) = 3000058 = . Следовательно, количество проверочных разрядов r = 16. 2 бита будет отводиться для адреса источника сообщения, так как источников сообщений 3. В посылку также следует включать номер посылки, но их число, а следовательно и размер номера посылки будет зависеть от размера самой посылки. Размер передаваемой информации 104 Байт от каждого источника информации. Также в начале и в конце блока будут вставлены маркерные комбинации по 6 бит для определения начала и конца комбинации.

Для нахождения оптимального размера блока нужно было найти максимальную относительную эффективную скорость по формуле:

(3)

По формуле 3 при вероятности ошибочного приема сообщения P0 = 10-3 был построен график зависимости относительной эффективной скорости от размера блока (Рисунок 3.1).

Рисунок 2.9 – Зависимость относительной эффективной скорости передачи данных от размера блока данных

По графику видно, что наиболее эффективная скорость при размере блока Nб = 167. Из ряда стандартных значений размеров блоков наиболее близкий к оптимальному размер блока Nб = 120.

Данный циклический код с образующим полиномом p(x) = 3000058 = теоретически при числе ошибок в канале 10-3, алгоритмы исправления должен улучшить этот показатель и привести число ошибок, к 10-6 (категория помехоустойчивости Kp = 2 для алфавитно-цифровой информации по ГОСТ ) и менее. Допустим, что минимальное кодовое расстояние d = 5. Пусть ожидается, что информационная часть в блоке будет содержать 100 бит. Тогда вероятность трансформации при максимальном кодовом расстоянии меньше заданного допустимого значения:

(4)

При обнаружении ошибки приемник будет запрашивать новые данные у передающего устройства. На самом деле, такой код с минимальным кодовым расстоянием d = 5 может обнаружить 4 ошибки и исправить 2 ошибки в принятой комбинации.

Количество информационных битов k и количество битов под номер блока m можно определить, решив уравнение:

(5)

k = 91. m = 10. Но так как информация передается в формате КОИ-8, то размер информации в блоке должен быть кратен байту. Это можно добиться путем уменьшения размера поля номера блока до 6 бит. Номер блока будет передаваться циклически. Тогда формат сообщения будет следующий:

маркер

Адрес

Номер блока

Информация

Проверочная часть

32 бит

2бита

6 бит

96 бит

16 бит

Рисунок 2.10 – Единичный блок информации и распределение битов

Формат ответного сообщения

Дуплексные и полудуплексные системы передачи данных подразумевают наличие обратных связей (ОС). Поэтому необходимо выбрать формат ответного сообщения приемника. Устройства с ин­формационной ОС передают необходимую информацию передатчику сообщений, а он в свою очередь принимает решение. Устройство с решающей ОС передают по обратному каналу управляющие сигналы. В двух этих случаях длины посылок различные.

Для начала необходимо определить все возможные виды ответных сообщений:

1.  Верное принятие сообщения – запрос следующего блока;

2.  Передача данных закончена.

Таким образом, потребуется 1 бит для описания вида сообщения:

0 – «верное принятие блока»;

1 – «передача данных закончена»

Для ответного сообщения целесообразно применить асинхронный старт-стопный метод, так как:

- сообщения небольшой длительности;

- паузы между сообщениями больше, чем длина сообщения.

Формат сообщения для передачи по обратному каналу с РОС будет иметь вид, представленный на рисунке:

Рисунок 2.11 – Формат ответного сообщения

Старт-1,5 бита, 0,5 бит - контрольная пауза, 1стоповый бит, информация: 1 бит – причина отправки ответа.

Так как минимальное кодовое расстояние между информационными частями посылок d = 1. При передаче одной посылки вероятность трансформации можно найти по формуле:

, (6) где p - вероятность ошибки.

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

Старт

Пауза

Информация

Стоп

1,5 бит

0,5 бит

3 бит

1 бит

Рисунок 2.12 – Единичный блок информации и распределение битов

Т. о. формат ответного сообщения будет изображен на рисунке 2.1. Для РОС будет использоваться стартстопный метод фазирования.

2.3  Расчет среднего времени запаздывания информации

Для прямого канала связи

Среднее время запаздывания информации определяется по формуле:

W = C + T (7)

где T = Тпер+ Тсб + Tобр,

С – среднее время ожидания сообщением обслуживания на выходе источника информации,

Тпер – время передачи информации от 1 источника к приемнику,

Тсб – время сбора информации приемником,

Tобр – время обработки приемником сообщения.

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

W = C + Tпер (8)

С учетом того, что необходимо передать 104 Байт информации по 96 бит в каждом блоке, количество посылок M = 80000бит/96бит = 834

Длина посылок L = 120Бит, следовательно, время передачи одной посылки можно найти по формуле (9)

Время передачи от 3 источников сообщения будет равным (10)

С – среднее время ожидания сообщением обслуживания на выходе источника информации при циклическом обслуживании находится по формуле Хинчина-Поллачека.

(11)

где λ – интенсивность поступления заявок на обслуживание с источников информации.

В нашем случае среднее время ожидания обслуживания

Общее время запаздывания информации будет равным

W = tц + Tпер = 133,44c + 1,18мс ≈ 133,44 с.

Для обратного канала связи

Длина посылок L = 6Бит, следовательно, время передачи одной посылки можно найти по формуле (13)

В нашем случае среднее время ожидания обслуживания С = 0

T. о. общее время запаздывания информации будет равным W = Tпер = 0,025c.

2.4  Вывод к главе 2

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

3  Разработка структурных схем и алгоритмов функционирования СПД

3.1  Разработка структурной схемы передающего устройства

В общем, виде структурная схема передающего устройства состоит из следующих блоков: устройства управления (УУ), буферного накопителя(БН), кодирующего устройства(КУ), анализатора обратного канала связи(АОКС), формирователя маркерной комбинации(ФМК), датчика номера блока(ДНБ), датчика служебной комбинации(ДСК), формирователя сигналов обмена(ФСО), блока начальной установки(БНУ), блока аварийной индикации и сигнализации(БАСИ), формирователя тактовых импульсов(ФТИ), счетчика числа повторных запросов(СПЗ), ВБ – выполняет функцию бит-стаффинга.

Информация передаётся в цифровом виде. В свою очередь от передатчика к каждому источнику должен передаваться сигнал запроса на передачу и сигнал готовности обслуживания. Кроме того, от каждого источника необходимо организовать линию подтверждения запроса на обслуживание. В случае положительного ответа на подтверждение, источнику информации отправляется сигнал «Готов», а последний в свою очередь отправляет данные. Данные сигналы обмена формирует ФСО1. Номера опрашиваемых источников информации формирует устройство управления.

БНУ при включении устройства или при каких-либо неустранимых ошибках в работе устройства обнуляет все счетчики, регистры, т. е. переводит передатчик в исходной состояние.

В блоке проверки и преобразования информации БППИ, информация, полученная от источников, преобразуется в вид, удобный для кодирования, выполняется эффективное кодирование.

ДНБ, который формирует номер передаваемого блока, включает в качестве основной части двоичный счетчик, который тактируется сигналами УУ.

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

Кодирующее устройство, используя в качестве входных данных выходные данные БППИ, ДНБ, ДСК, формирует сообщение для передачи по каналу связи.

Буферный накопитель предназначен для временного хранения данных, поступивших от источников информации.

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

Формирователь тактовых импульсов исполняет функцию синхронизации с приемным устройством, такое же устройство находится на приемной стороне СПД.

БАСИ предназначен для индикации аварийных ситуаций в работе передающей части устройства.

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

Блок ВБ выполняет функцию вставки 0 бита в комбинации в длинные последовательности из единиц(бит-стаффинг).

Рисунок 3.1 – Структурная схема передающего устройства

3.2  Разработка структурной схемы приемного устройства

В общем, виде структурная схема принимающего устройства состоит из следующих блоков: формирователь сигналов обратной связи (ФСОС), формирователя тактовых импульсов (ФТИ), формирователей сигналов обмена ФСО1,2 , регистра служебной комбинации (Рг Ск), дешифратора служебной комбинации (Дш Ск), блока циклового фазирования (БЦФ), блока аварийной сигнализации и индикации (БАСИ), устройства управления (УУ), буферного накопителя (БН), декодирующего устройства (ДКУ), входного регистра (Вх Рг), блока преобразования и выдачи информации (БПВИ), УБ – блок для удаления излишних вставленных нулевых бит.

БЦФ служит для определения начала блока информации. Декодер декодирует информацию, которая поступает от устройства приема/передачи. Буферный накопитель принимает данные от декодирующего устройства и хранит их в течение одного цикла работы, после чего по сигналу от уставляющего устройства выдает ООД. ФТИ необходимо для формирования синхропоследовательности, которая синхронизирует работу устройств на приемной стороне. Как и в схеме передающей части в схеме приемной части присутствует БНУ, БАСИ, выполняющие ту же функцию.

БПВИ преобразует информацию и передает ее следующему узлу СПД – устройству сопряжения.

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

Рисунок 3.2 – Структурная схема принимающего устройства

Так как разрабатываемая система дуплексного типа, то на обеих сторонах СПД должен быть как приемная часть УЗО, так и передающая.

В приемной части формировать ответные сообщения будет ФСОС, включающий формирователь пускового элемента и КУ, которое будет кодировать адрес источника информации и номер неправильно принятого блока. На передающей стороне находится узел АОКС, который выполняет функции декодирования сообщения и выделения пускового элемента в кодовой последовательности.

3.3  Алгоритм работы передатчика

Алгоритм функционирования передатчика разрабатывается вне зависимости, на каких элементах будет реализована СПД.

При включении устройства производятся начальные установки всех устройств (обнуление регистров, счетчиков и т. д.). Устройство управления выбирает из ПЗУ адрес первого источника информации и опрашивает его, выставляя сигнал “Запрос”. Если источник информации не готов к передаче устройство управления выбирает из ПЗУ адрес следующего источника информации. Если источник информации готов к передаче он выставляет сигнал “Подтверждение запроса”. Устройство управление выставляет сигнал “готов”, когда оно готово к приему данных. Данные от источника информации записывается в буферный накопитель. Далее устройство управление формирует сигнал для датчика номера блока и датчика служебной комбинации. УУ формирует сигнал на отправку маркерной комбинации, далее на кодирование информации. Данные, передаваемые в дискретный канал связи кодируются помехоустойчивым кодом. Сформированные кодером проверочные биты добавляются к информационным (номер блока, адрес, данные). Аналогичным образом формируются последующие блоки.

Далее из анализатора обратного канала связи считывается квитанция на перезапрос: если она “отрицательная” (сообщение пришло верно), то отправляется следующий блок информации. Если квитанция положительная(передана вся информация), передающая часть завершает свою работу. В случае отсутствия ответного сообщения, УУ обращается к буферному накопителю, из которого еще не была удалена переданная неправильно информационная часть. Формируется повторное сообщение, которое далее кодируется и отправляется в канал связи. В том случае, если количество повторных запросов превышает допустимое число, происходит обнуление СПЗ и отправляется следующее сообщение. В случае сбоя в работе передатчика, а именно: в случае отсутствия сигналов от источников, в случае отказа каких либо узлов передающей части БАСИ сигнализирует об этом. Блок-схема описанного алгоритма работы представлена на рисунке 3.3

Рисунок 3.3 – Блок-схема алгоритма работы передающей части СПД

Рисунок 3.3(Продолжение) – Блок-схема алгоритма работы передающей части СПД

3.4  Алгоритм работы приемника

При включении устройства производятся начальные установки всех устройств (обнуление регистров, счетчиков и т. д. ). Система начинает поиск маркера, который будет означать начало блока данных. Синхронизация приемной части, подстройка формирователя тактовых импульсов будет проходить автоматически по выявлении на выходе УПС импульсов информации, т. е. будет иметь место самосинхронизация. При выявлении маркерной комбинации УУ разрешает работу декодера, который определяет наличие ошибки в принятой кодовой комбинации. Если ошибок нет, то данные передаются в буферный накопитель, а далее в БПВИ. В случае выявления ошибки, по обратному каналу связи передающей части отправляется сообщение о необходимости повторной передачи, с данными о номере оправленного блока и адресе источника.

Завершение работы происходит при отключении ССПИ. Блок-схема алгоритма, описанного выше, представлена на рисунке 3.4

Рисунок 3.4 – Блок-схема алгоритма работы приемной части СПД

3.5  Структурная схема кодера циклического кода

3.6  Структурная схема декодера CRC-кода

3.7  Вывод к главе 3

В главе 3 данного курсового проекта разработаны структурные схемы передающей и приемной частей системы передачи данных, алгоритмы функционирования приемной и передающей частей, структурные схемы кодера и декодера CRC-кода.

4  Разработка кодирующего и декодирующего устройства

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

Общие сведения

Программа Сodeс. exe, которая представляет собой законченный, исполнимый файл написана на языке С++. Разработана в интегрированной среде разработки Borland C++ Builder 5.

Назначение программы

Назначение данной программы – демонстрация контроля ошибок при передаче сообщений циклическим кодом, что подразумевает кодирование информации циклическим кодом и выявление наличия ошибок при приеме сообщения (декодирование без исправления ошибок). Чтобы показать правильность кодирования, декодирования, выявления ошибок передается лишь один блок, который содержит 88 бит информации и заданное ранее количество проверочных бит.

Входные и выходные данные

К входным данным относятся:

- образующий полином циклического кода, который можно сгенерировать случайным образом, загрузить полином из файла или выбрать полином p(x) = 3000058;

- информационная последовательность, которая может быть сформирована случайным образом или загружена из файла;

- вектор ошибки, который задается пользователем.

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

К выходным данным относятся:

- массив проверочной части;

- массив принятого сообщения;

- результат декодирования сообщения.

Результатом декодирования является решение о верности принятого сообщения.

Массив принятой кодовой комбинации и проверочная часть – массивы булевского типа. Принятую комбинацию можно записать в файл.

Описание логической структуры

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

Последовательность действий при работе с программой:

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

2. После генерируется случайным образом, либо загружается из файла информационная последовательность, которая далее подлежит кодированию. Для этого предназначены кнопки «Сформировать» и «Открыть файл». Сформированную последовательность можно сохранить в файл. При выборе какой-либо клетки в строке информационной последовательности бит в массиве информации инвертируется.

3. При нажатии кнопки «Закодировать» информация кодируется, формируется проверочная часть, которую можно просмотреть в строке «Проверочная часть».

4. Далее можно сформировать вектор ошибки, который изначально равен нулевой строке. При выборе какой-либо клетки бит в векторе ошибки инвертируется.

5. По нажатии кнопки «Принять сообщение» в последней таблице выводится принятая комбинация, а в поле «Результат» вывод о правильности принятия сообщения.

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

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

Используемые переменные

В класс формы, кроме стандартных объектов, были добавлены следующие переменные и объекты:

- codec * first; (указатель на объект класса codec)

- bool * ptr; (вспомогательный указатель булевского типа)

- bool * inf; (указатель на массив информации булевского типа)

- bool * err; (указатель на массив вектора ошибки булевского типа)

- bool * rec; (указатель на массив принятого сообщения булевского типа)

- bool * pla; (вспомогательный указатель булевского типа, используемый при загрузке полинома в класс codec)

- TFileStream * information; (указатель на поток файла, для загрузки массива информации)

- TFileStream * message; (указатель на поток файла, для сохранения массива принятого сообщения)

- TFileStream * polynom; (указатель на поток файла, для загрузки и сохранения массива полинома)

В классе codec используются следующие переменные и функции:

- int degr - степень полинома

- bool * poly - адрес полинома

- bool * reg - адрес остатка

- bool * syn - адрес синдрома

- bool * copy - адрес массива копии информации

- int change_poly(bool *, int) – функция изменения полинома

- bool * code(bool *) - функция кодирования

- bool decode(bool *) - функция декодирования

- bool * get_reg() { return reg;} – возврат остатка из регистра кодера

- bool * get_poly() { return poly;} - возврат адреса полинома

- bool * get_syn() {return syn;} - возврат синдрома

- int get_degr() {return degr;} – возврат степени образующего полинома

- codec() – конструктор класса

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

Приведем лишь алгоритмы основных функций класса codec.

Рисунок 4.1 – Блок-схема алгоритм функции кодирования информационной последовательности.

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

Рисунок 4.3 – Блок-схема алгоритма функции изменения образующего полинома

Вызов и загрузка

Размер исполнимого файла 480Кб. Размер прилагаемого файла справки 720Кб. Файлы сообщения, информации, образующих полиномов можно не использовать. К программе прилагается файл справки Windows. При исполнении программа занимает в оперативной памяти около 6Мб.

4.2  Тестирование программной реализации

Тест 1

Входные данные:

Образующий полином по заданию p(x) = 3000058 =

Произвольная информационная последовательность:

I(x) =

Нулевой вектор ошибки:

E(x) =

Выходные данные:

Декодированная комбинация:

M(x) =

Проверочная комбинация:

R(x) =

Вывод сообщения об правильно принятой комбинации

Тест 2

Входные данные:

Образующий полином загруженный из файла p(x) = 10112

Информационная часть, загруженная из файла и содержащая одни лишь единичные биты: I(x) =

Полностью единичный вектор ошибки

E(x) =

Выходные данные:

Декодированная комбинация:

M(x) =

Проверочная комбинация:

R(x) = 1112

Вывод сообщения об ошибочно принятой комбинации

Тест 3

Входные данные:

Образующий полином загруженный из файла p(x) = 10112

Информационная часть, загруженная из файла и содержащая одни лишь единичные биты: I(x) =

Полностью единичный вектор ошибки

E(x) =

Выходные данные:

Декодированная комбинация:

M(x) =

Проверочная комбинация:

R(x) =

Вывод сообщения об ошибочно принятой комбинации

Т. о. программа успешно прошла предложенные ей тесты.

4.3  Вывод к главе 4

В главе 4 данного курсового проекта разработана программная реализация кодера и декодера циклического кода, также приведены алгоритмы основных функций из класса codec, приведены тесты программы. Листинг программы приведен в приложении Б.