Синтез кодека кода Рида-Маллера
Введение
В последнее время передача данных является
наиболее быстро развивающейся областью техники. Спутниковая связь, локальные и
глобальные сети, волоконно-оптическая технология, цифровые сети, сотовая
телефонная связь, цифровая сеть с интеграцией служб и модель взаимодействия
открытых систем - все это далеко не полный список примеров быстрого развития
отрасли связи.
Но во всех этих отраслях существует одна и та же
проблема - возникновение ошибок при передаче информации. Решение этой проблемы
комплексно, оно включает в себя огромное число всевозможных технических
решений, но одним из самых главных, эффективных и дешевых является
помехоустойчивое кодирование.
1. Выбор и обоснование параметров кода
В данном курсовом проекте в качестве
помехоустойчивого кода примем код Рида-Маллера первого порядка с числом
информационных позиций k=6
и мажоритарным декодером.
Коды Рида - Маллера представляют собой класс
линейных кодов над GF(2) c простым описанием и декодированием, осуществляемым
методом простого голосования. Как правило, эти коды кодируются таким образом,
что в результате получается неразделимый код. РМ-коды нашли широкое применение
в различных радиоэлектронных системах. При этом используется однородная и
регулярная структура порождающей матрицы G,
позволяющее упростить декодирование кодов. По этим причинам коды Рида - Маллера
играют важную роль в кодировании (коды Рида - Маллера были использованы при
передаче фотографий Марса космическим кораблем Маринер в 1972г.).
К основным параметрам РМ - кодов относятся:
а) - длина кодовой последовательности;
б) - количество информационных
символов, входящих в кодовую последовательность;
в) r=n-k -
количество проверочных символов;
г) - минимальное кодовое расстояние;
д) l - порядок
кода.
Коды Рида-Маллера первого порядка
задаются порождающей матрицей G, первая строка которой состоит из
единиц. В качестве столбцов остальных m строк
используются все двоичные числа длиной m:
Кодирование РМ-кодов
осуществляется стандартным образом - путем умножения исходного вектора на
порждающую матрицу:
AG=B.
Как правило, РМ-коды декодиркются
мажоритарным способом (в последние годы для декодирования РМ-кодов используются
процессоры быстрых преобразований).
2. Синтез кодирующего устройства
(кодера)
Используя исходные данные и
выражения
, определим основные
параметры
кода:
k=m+1 m=5, L=1, , и r=n-k=26
двоичных символов.
Порождающая матрица данного
РМ-кода имеет следующеее построение:
Кодирование информации
осуществляется путем умножения исходного информационного сообщения Q(x)= на
порождающую матрицу, т.е. по правилу
. В этом случая формируются
последовательности неразделимого кода, которые содержат по n=32 двоичных
символа. Процесс кодирования (формирования кодовых последовательностей) может
быть реализован на сумматорах по модуля два. Составим уравнения формирования
кодовых символов, которые имеют следующий вид:
2.1 Разработка
структурной схемы кодера
Разработку структурной схемы кодера
кода Рида-Маллера следует выполнять с определения основных функций кодера, к
которым следует отнести:
. Деление (разделение) символов
входного информационного потока Q(х) на информационных
подпотоков;
. Формирование проверочных символов
из входных информационных символов;
. Объединение 32 проверочных
символов в кодовый поток или в поток кодовых символов.
Для реализации данных функций
необходимо определить функциональные узлы (блоки) кодера и далее объединить их
в структурную электрическую схему. Для кода Рида-Маллера первого порядка
основными функциональными узлами являются:
. КРИ -1/6 - коммутатор разделения
информации входного потока на информационных подпотоков;
2. ФПСк - формирователь проверочных символов
кодера;
. КОИ -32/1 - коммутатор объединения информации,
объединяет 32 проверочных символа в кодовый поток или в поток кодовых символов.
Структурная схема кодера кода Рида-Маллера
представлена на рис. 2.1
Рис. 2.1 Структурная схема кодера кода
Рида-Маллера первого порядка с (n,k)=(32,6)
.2 Разработка функциональной схемы кодера
код маллер матрица информационный
Для построения функциональных блоков кодека
необходимо обеспечение минимума сложности аппаратной реализации.
В соответствии с уравнениями кодирования и
алгоритмом декодирования РМ-кода полностью определяется принцип построения
функциональной схемы кодера.
Наиболее простым способом построения
КРИ-1/6 является использование двух регистров (RG1, RG2) и блока
формирования тактовых частот RG1 и RG2. Оба
регистра содержат по ячеек
памяти.
Функциональная схема ФПСк
реализуется на сумматорах по модулю два.
КОИ-32/1 кодера целесообразно выполнить
в виде синхронных мультиплексоров на соответствующее число информационных и
управляющих входов, а также формирователя сигналов управления мультиплексором.
Формирователь сигналов управления выполнен в виде двоичного счетчика.
Функциональная схема РМ-кода первого
порядка с (n,k)=(32,6)
представлена на рис. 2.2.
Рис.2.2 Функциональная схема РМ-кода
первого порядка с (n,k)=(32,6)
Кодер КРМ работает следующим образом. Символы
входного информационного потока Q(x)
разделяются в КРИ-1/6 на шесть подпотоков. Информационные символы данных
подпотоков поступают одновременно на соответствующие входы ФПСк, выполненного
на сумматорах по модулю два. В ФПСк из символов информационных подпотоков
формируются проверочные символы. Сформированные проверочные символы поступают
на соответствующие входы КОИ-32/1, который объединяет символы проверочного
подпотока в единый поток кодовых символов F(x).
.3 Разработка электрической принципиальной схемы
кодера
Язык ассемблера - это символическое
представление машинного языка. Все процессы в машине на самом низком,
аппаратном уровне приводятся в действие только командами (инструкциями)
машинного языка. Отсюда понятно, что, несмотря на общее название, язык
ассемблера для каждого типа компьютера свой. Это касается и внешнего вида
программ, написанных на ассемблере, и идей, отражением которых этот язык
является.
Для реализации кодера используем микроконтроллер
серии PIC17C43,
основные параметры которого приведены в таблице 2.3.1 .
Таблица 2.3.1
Особенности
|
PIC17C43
|
Максимальная
частота операции
|
33МГц
|
Диапазон
рабочего напряжения
|
2,5-6
В
|
Память
Программы x16 (программируемое ПЗУ)
|
4K
|
ОЗУ
данных (байты)
|
454
|
Аппаратный
множитель (8 x 8)
|
Да
|
Timer0
(16-разрядный + постсчетчик на 8 битов)
|
Да
|
Timer1
(8 битов)
|
Timer2
(8 битов)
|
Да
|
Timer3
(16-разрядный)
|
Да
|
(16-разрядные)
вводы сбора данных
|
2
|
PWM выводы (до 10 битов)
|
2
|
USART/SCI
|
Да
|
Сброс
Включения питания
|
Да
|
Контрольный
Таймер
|
Да
|
Внешние
Прерывания
|
Да
|
Источники
Прерывания
|
11
|
Кодовая
защита памяти программы
|
Да
|
порты
ввода - вывода
|
33
|
Типы
пакета
|
40-pin DIP 44-pin PLCC 44-pin MQFP
44-pin
TQFP
|
Особенности микроконтроллера:
20 мА втек. и 35 мА вытек. ток, 2 линии
ввода/вывода с втек./вытек. током 60 мА; 2 модуля захвата с возможностью внешнего
расширения; перемножение 8-ми пар операндов за 1 такт.
Описание выводов микроконтроллера PIC17C43
представлено в таблице 2.3.2.
Таблица 2.3.2
Имя
|
Описание
|
OSC1/CLKIN
|
Ввод
генератора в кристалле/резонаторе или емкостно-резистивном режиме генератора.
|
OSC2/CLKOUT
|
Вывод
генератора. Соединяется с кристаллом или резонатором в кристалле, режим
генератора. В емкостно-резистивном генераторе или внешних режимах часов OSC2
порт выводит CLKOUT, который имеет одну четверть
частоты OSC1 и обозначает норму{разряд;скорость} цикла команды.
|
MCLR/VPP
|
Ввод/программирование
напряжения (VPP) Это -
активный низкий ввод сброса к чипу.
|
RA0/INT RA1/T0CKI RA2 RA3
RA4/RX/DT
RA5/TX/CK
|
Двунаправленный
порт ввода - вывода, кроме RA0 и RA1, которые являются только вводом. RA0/INT может
также быть выбран как внешнее прерывание ввода. Прерывание может быть
конфигурировано, чтобы осуществлятся по положительному или отрицательный
фронту. RA1/T0CKI может
также быть выбран как внешний ввод прерывания, которые могут быть конфигурированы,
чтобы находиться на положительном или отрицательный фронте. RA1/T0CKI может
быть также выбран часами, вводитсят на таймер/счетчике Timer0. Высокое
напряжение, высокий поток, открывает порт ввода - вывода линии утечки.
Высокое напряжение, высокий поток, открывает порт ввода - вывода линии
утечки. RA4/RX/DT может
также быть выбран как USART, т.к
получает асинхронные или синхронные данные. RA5/TX/CK может
также быть выбран как USART, т. к.
передает асинхронные или синхронная времена.
|
RB0/CAP1 RB1/CAP2 RB2/PWM1 RB3/PWM2 RB4/TCLK12 RB5/TCLK3 RB6 RB7
|
ПОРТ
B - двунаправленный порт ввода - вывода, порт с конфигурированным программным
обеспечением и со слабым напряжением-ups. RB0/CAP1 может
также быть линией ввода CAP1. RB1/CAP2 может
также быть линией ввода CAP2. RB2/PWM1 может
также быть линией вывода PWM1. RB3/PWM2 может
также быть линией вывода PWM2. RB4/TCLK12 может
также быть внешний ввод часов к Timer1 и Timer2. RB5/TCLK3 может
также быть внешний ввод часов к Timer3.
|
RC0/AD0 RC1/AD1
RC2/AD2
RC3/AD3 RC4/AD4 RC5/AD5 RC6/AD6 RC7/AD7
|
ПОРТ
C - двунаправленный порт ввода- вывода. Это - также более низкая половина
системной шины 16 битов шириной в режиме микропроцессора или
расширенном{продленном} режиме микроконтроллера. В мультиплексной системе
шинная конфигурация этих линий - вывод адреса, также как ввод данных или
вывод.
|
RD0/AD8 RD1/AD9 RD2/AD10 RD3/AD11
RD4/AD12 RD5/AD13 RD6/AD14 RD7/AD15
|
ПОРТ
D - двунаправленный ввод - вывод Порт. Это - также старший байт 16-разрядной
системной входной шины в режиме микропроцессора или расширенный{продленный}
режим микроконтроллера. В мультиплексной системе шинная конфигурация этих
линий - вывод адреса, также как ввод данных или вывод.
|
RE0/ALE RE1/OE RE2/WR
|
ПОРТ
E - двунаправленный порт ввода - вывода. В режиме микропроцессора или
расширенном {продленном} микроконтроллерном режиме, это - фиксатор адреса.
Адрес нужно запереть на отрицательном фронте ожидаемого времени актуальности
адреса вывода. В микропроцессоре или расширенном{продленном} режиме
микроконтроллера, этот вывод позволяет управлять выходом(OE)
(активный низкий) В микропроцессоре или расширенном{продленном} режиме
микроконтроллера, управление выводом (WR)
(активный низкий).
|
TEST
|
Испытательный
выбор режима. Всегда связывается с VSS для
нормальной работы.
|
VSS
|
Общий(земля).
|
VDD
|
Напряжение
питания.
|
3. Синтез декодирующего устройства (декодера)
Для синтеза декодера кода
Рида-Маллера реализующего мажоритарный метод декодирования, необходимо
сформировать систему раздельных проверочных уравнений (проверок). Система
раздельных проверок формируется на основе порождающей матрицы G и имеет
следующую структуру:
Для определения необходимо
использовать ранее полученные значения ,а также результат уравнения
истинности .
Данный код позволяет обнаружить 15 и
исправитьр
3.1. Разработка структурной схемы декодера
К основным функциям декодера относятся:
1. Разделение символов входного потока F(х)
на n=32 подпотока.
2. Формирование последовательности проверочных
символов декодера.
3. Объединение к=6 проверочных символов
декодера в один поток или поток кодовых слов.
Для данного кода Рида-Малера основными
функциональными узлами декодера являются:
КРИ-1/32 - коммутатор разделения символов
принятого потока F(х) на n=32
подпотоков.
ФПСд - формирователь проверочных символов
декодера (аналогичен ФПСк).
КОИ-6/1 - коммутатор объединения информации,
объединяет 6 информационных символов в кодовый поток или в поток кодовых
символов.
Структурная схема декодера будет иметь следующее
построение (рис. 3.2.).
Рис. 3.2 Структурная схема декодера кода
Рида-Маллера первого порядка с (n,k)=(32,6)
.2 Разработка функциональной схемы декодера
Наиболее простым способом построения
КРИ-1/32 является использование двух регистров (RG1, RG2) и блока
формирования тактовых частот RG1 и RG2. Оба
регистра содержат по ячеек
памяти.
Функциональная схема ФПСд
реализуется на сумматорах по модулю два и мажоритарныж элементах.
КОИ-6/1 кодера целесообразно
выполнить в виде синхронного мультиплексора на соответствующее число
информационных и управляющих входов, а также формирователя сигналов управления
мультиплексором. Формирователь сигналов управления выполнен в виде двоичного
счетчика.
Функциональной схемы декодера кода
Рида-Маллера первого порядка с (n,k)=(32,6)
представлена на рис 3.2.
Декодер КРМ работает следующим
образом. Кодовый поток F(x) поступает
на вход КРИ-1/32, где он разделяется на 32 подпотоков. Далее потоки поступают
на вход ФПСд. В ФПСд из символов информационных подпотоков формируются
проверочные символы, поступающие на мажоритарные элементы, на выходе которых
формируются декодированные символы. В КОИ-1/6 происходит их объединение в
единый поток.
Рис. 3.2 Функциональной схемы
декодера кода Рида-Маллера первого порядка с (n,k)=(32,6)
3.3
Разработка принципиальной схемы декодера
Для реализации декодера реализующего
мажоритарный алгоритм декодирования используем микроконтроллер серии PIC17C43,
т. к. реализовать мажоритарный элемент на логических элементах очень сложно.
Основные параметры микроконтроллера приведены в таблице 2.3.1, а описание
выводов микроконтроллера PIC17C43
представлено в таблице 2.3.2.
Заключение
В данной курсовой работе был разработан кодек
кода Рида-Маллера с параметрами (32;6;16), который обнаруживает 15 и исправляет
7ошибок. Для данного кода были построены структурная, функциональная и
принципиальная схемы кодирующего и декодирующего устройств. Принципиальные
схемы кодера и декодера были реализованы на микроконтроллере PIC17C43.
Литература
1.
Конопелько В. К., Липницкий В. А., Дворников В. Д. и др. Теория прикладного
кодирования: Учеб. Пособие. В 2 т. Т. 2. - Мн.: БГУИР, 2004. - 398 с.: ил.
.
Блейхут Р. Теория и практика кодов, контролирующих ошибки. Москва: Мир, 1986 г.
.
Мак-Вильямс Ф. Дж., Слоэн Н. Дж. А. Теория кодов, исправляющих ошибки. М.:
Связь, 1979 г.
.
Дмитриев В. И. Прикладная теория информации. М.: Высшая школа, 1989г.
.
Королёв А. И. Коды и устройства помехоустойчивого кодирования информации.
Минск, 2010.
.
Сташин В. В., Урусов А. В., Мологонцева O.
Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.:
Энергоатомиздат, 1990г.