Смекни!
smekni.com

Кодирующее устройство для кода Файера (стр. 2 из 6)



Рис. 1.1. Кодирующее устройство для циклического кода на основе (n-k) – разрядного регистра сдвига.

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


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

1.4. Коды Файра.

Под пакетом ошибок длинной b понимают такой вид комбинации помехи, в котором между крайними разрядами, пораженными помехами, содержится b-2 разряда.

Коды Файра могут исправлять пакет ошибок длинной bs и обнаруживать пакет ошибок длинной br (в кодах Файра понятие кодового расстояния d не используются).

Образующий многочлен кода Файра P(X)ф определяется из выражения

P(X)ф= P(X)(Xc-1), (1.3)

Где P(X) – неприводимый многочлен степени

L.

Из принципа построения кода следует, что

L ≥ bs, (1.4)

с ≥ bs+ br-1 (1.5)

При этом с не должно делится нацело на число e, где

e=2L -1 (1.6)

Неприводимый многочлен P(X) выбирают из таблицы, согласно уравнению (4), но так, чтобы удовлетворялось условие (6). Длинна слова n равна наименьшему общему кратному чисел c и e, так как только в этом случае многочлен Xn+1 делится на P(X)фбез остатка:

n=НОК(e,c) (1.7)

Число контрольных символов

m=c+L (1.8)

ВЫВОДЫ. В данной главе были рассмотрены теоретические аспекты построения двоичных циклических кодов. Также было выбрано кодирующее устройство на основе n-k разрядного регистра. Выяснили, что сперва необходимо найти образующий многочлен (по соответствующим формулам), а потом на основе этого многочлена строить кодирующее устройство. В последующих главах будет приведена реализация кодирующее устройство кода Файра на ЭВМ и приведена принципиальная схема кодера.

2. Разработка схемы кодирующего устройства.

2.1. Построение кода Файра.

Согласно техническому заданию и в соответствии с данными, полученными на курсовую работу образующий многочлен Файра P(X)ф. Согласно формуле (1.4) находим L ≥ 3 , откуда можно принять L=3. Из соответствующих таблиц выбираем неприводимый многочлен P(X)=x3+x+1= 1011.

В соответствии с формулой (1.5):

c ≥ 3+4-1 ≥ 6 , откуда можно принять с=6.

По формуле (1.6) получаем е=23-1=7. Видим, что с на е нацело не делится.

Число проверочных разрядов, подставляя в формулу (1.8) значения L и C, получим m=6+3=9 .

Тогда длинна кода в соответствии с (1.7) равна

n = НОК(6,7) = 42

Тогда код Файра имеет вид (42,33).

Образующий многочлен Файра P(X)ф равен

P(X)ф=(x3+x+1)(x6+1)=x9+x7+x6+x3+x+1=1011001011 (2.1)

2.2. Структурная схема кодирующего устройства.

В соответствии с многочленом (2.1) схема получения проверочных символов будет иметь 9-ти разрядный регистр с двумя ключами.

Структурная схема кодера представлена на рис. 2.1





Рис 2.1. Структурная схема кодера.

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

3. Анализ технического задания.

Согласно техническому заданию на курсовую работу необходимо построить математическую модель заданного корректирующего кода, найти образующую матрицу кода, технически реализовать средства для его кодирования/декодирования (на уровне принципиальной схемы), разработать многомодульную программу реализующую кодирующее устройство на ЭВМ..

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

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

Можно выделить пять основных модуля:

-Основная программа.

В нём происходит обработка результатов выполнения остальных модулей программы. А именно: интерфейс, модуль ввода данных, модуль вывода данных, модуль обработки ошибок. Происходит выполнение алгоритма.

-Модуль ввода.

В нём происходит диалог пользователя с программой. В частности здесь происходит ввод информационных символов.

-Модуль вывода.

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

-Модуль обработки ошибок.

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

-Интерфейс.

В этом блоке реализован интерфейс программы взаимодействия пользователя с ЭВМ.

Интерфейс состоит из горизонтального меню и строки статуса.

Основные пункты меню:

-О программе.

В этом пункте представлена краткая информация о программе.

-Задание.

Изложена полная постановка задачи.

-Работа.

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

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

ВЫВОДЫ. В данной главе рассмотрены условия реализации программы и поставлены конкретные цели. Здесь было упоминание о модульной структуре программы, в следующей главе модульная структура будет рассмотрена подробнее. Также будут рассмотрены аспекты, связанные с реализацией пользовательского интерфейса.

4. Работа устройства.

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

Данные на вход кодирующего устройства поступают начиная со старшего разряда. Информация поступает на DD12.1 сумматор по модулю 2, выполненный на ИМС К555ИП5. Как только мы включили питание на схему, то через цепочку R4, C3, DD17.2, DD17.3 происходит начальный сброс счетчиков DD10, DD11. Это получается потому что в начальный момент времени, при резком подключении питания конденсатор С3 не успевает зарядится. На нем получается логический ноль. Этот ноль через инверторы DD14.2, DD14.3, выполненные на К155ЛИ1, преобразуется в единицу и поступает на входы счетчиков РЕ, счетчик переходит в режим записи, результате чего происходит запись в счетчики данных со входов D1-D4. Но так как эти входы заземлены, то на выходы счетчика запишутся нули. Произошло начальное обнуление. По истечении короткого промежутка времени конденсатор С3 заряжается до уровня логической единицы и счетчики переходят в режим счета импульсов. Так как счетчики обнулялись то на триггер DD15.2 на инверсный вход R поступает ноль и триггер установится в ноль. Этот ноль на выходе инвертора DD14.1становится единицей и поступает на инверсный вход R триггера DD15.1. Триггер хранит свое предыдущее нулевое значение, так как вход K заземлен, а на J поступает ноль со счетчика. Тогда на элемент DD13.3 будет поступать нулевой уровень. Но DD13.3 является элементом “И”, поэтому на его выходе всегда будет ноль. С другой стороны с инверсного выхода триггера на “И” поступает логическая единица и выходной сигнал будет зависеть от входного. Эта же единица поступает на DD13.5. Элементы DD13.3, DD13.4, DD13.5 выполняют роль ключей. Когда на выходе триггера DD15.1 логический ноль, то замкнут ключи К1, а К2 находится в положении 1 [см. Теоретическое введение], сигнал со входа напрямую поступает на выход, а в регистрах формируется остаток. Если на выходе триггера DD15.1 логическая единица, то ключи К1 разомкнут, а К2 находится в положении 2 .

Входной сигнал через ключ DD13.4 поступает на выход ,а через ключ DD13.5 на вход регистра DD1. Запись в регистр происходит последовательно со сдвигом влево, в соответствии с тактируемыми импульсами. В схеме девять регистров (Степень образующего многочлена). Каждый регистр выполняет задержку на один такт. Пока триггер DD15.1 находится в нуле в регистрах за K-тактов вычисляются проверочные символы.

Триггер DD15.2 управляет работой счетчиков и триггером DD15.1.