close

Вход

Забыли?

вход по аккаунту

?

О помехозащищенных кодах

код для вставкиСкачать

Лабораторная работа N 2
"ПОСТРОЕНИЕ И РЕАЛИЗАЦИЯ ГРУППОВЫХ КОДОВ"
Целью работы является усвоение принципов построения и технической реализации кодирующих и декодирующих устройств для групповых корректирующих кодов.
2.1 Указания к построению кодов.
2.1.1 Определение числа избыточных символов
Построение конкретного корректирующего кода производится исходя из требуемого объема кода N , т.е. необходимого числа передаваемых команд или дискретных значений измеряемой величины и статистических данных о наиболее вероятных векторах ошибок в используемом канале связи. Вектором ошибки будем называть кодовую комбинацию, имеющую единицу в разрядах, подвергающихся искажению, и нули во всех остальных разрядах. Любую искаженную кодовую комбинацию можно рассматривать теперь как сумму (равно как и разность) по модулю два разрешенной кодовой комбинации и вектора ошибки.
Исходя из неравенства , определяем число информационных разрядов, необходимое для передачи заданного числа команд обычным двоичным кодом.
Каждой из ненулевых комбинаций К-разрядного без избыточного кода нам необходимо поставить в соответствие комбинацию из n символов. Значения символов в n-к проверочных разрядах такой комбинации устанавливаются в результате суммирования по модулю два значений символов в определенных информационных разрядах.
Нам подлежит определить число проверочных разрядов и номера информационных разрядов, входящих в каждое из равенств определяющих символы в проверочных разрядах.
Из общего числа возможных ошибок групповой код может исправить всего разновидностей ошибок [I].
Чтобы иметь возможность получить информацию о векторе ошибки, воздействию которого подверглась полученная кодовая комбинация, каждому вектору ошибки, подлежащей устранению, должна быть сопоставлена некоторая контрольная последовательность символов, называемая опознавателем.
Каждый символ опознавателя на приемной стороне будет определяться в результате проверки одного из равенств, которые мы составим для определения значений проверочных символов при кодировании.
В групповом коде значения проверочных символов подбираются так, чтобы сумма по модулю два всех символов (включая проверочный разряд), входящих в каждое из равенств, равнялась нулю. В таком случае число единиц среди этих символов четное. Поэтому операции определения символов опознавателя называют проверками на четность. При отсутствии ошибок в результате всех проверок на четность образуется опознаватель, состоящий из одних нулей. Если проверочное равенство не удовлетворяется, то в соответствующем разряде опознавателя появляется единица. Исправление ошибок возможно лишь при наличии взаимно однозначного соответствия между множеством опознавателей и множеством подлежащих исправлению разновидностей ошибок.
Таким образом, количество подлежащих исправлению ошибок является определяющим для выбора числа избыточных символов n-к. Последних должно быть достаточно для того, чтобы обеспечить необходимое число опознавателей.
Если, например, мы желаем исправлять все независимые одиночные ошибки, то исправлению подлежит n ошибок
000...01
000...10
........
100...00.
Различных ненулевых опознавателей должно быть не менее n.
Необходимое число проверочных разрядов, следовательно, должно определяться из соотношения :
.
В общем случае для исправления всех независимых ошибок кратности до t включительно получаем :
.
Стоит подчеркнуть, что в приведенных соотношениях указывается теоретический предел минимально возможного числа проверочных символов, которых далеко не во всех случаях можно реализовать практически.
2.1.2 Составление таблицы опознавателей
Начнем для простоты с установления опознавателей для случая исправления одиночных ошибок. Допустим, необходимо закодировать 15 команд. Таблица 2.1
N разрядаВектор ошибкиОпознаватель1
2
3
4
5
6
70000001
0000010
0000100
0001000
0010000
0100000
1000000001
010
011
100
101
110
111
При таком сопоставлении каждый опознаватель представляет собой двоичное число, указывающее номер разряда, в котором произошла ошибка.
Тогда к=4, n=7. Три избыточных разряда позволяют использовать в качестве опознавателей трехразрядные двоичные последовательности. В принципе они могут быть сопоставлены подлежащим исправлению ошибкам в любом порядке. Однако более целесообразно сопоставлять их ошибкам в разрядах, начиная с младшего, в порядке возрастания двоичных чисел.
Коды, в которых опознаватели устанавливаются по указанному принципу, известны как коды Хэмминга.
Возьмем теперь более сложный случай исправления всех одиночных и независимых двойных ошибок. В качестве опознавателей одиночных ошибок в первом и втором разрядах можно принять, как и ранее две комбинации 0...001 и 0...010.
Подлежащий исправлению вектор ошибки 0...011 может рассматриваться как результат суммарного воздействия двух векторов ошибок 0...010 и 0...001 и , следовательно, ему должен быть сопоставлен опознаватель, представляющий собой сумму по модулю два опознаватель этих ошибок, т.е. 0...011.
Вектору ошибки 0...01000 сопоставляем опознаватель 0...0100 и т.д. Выбирая в качестве опознавателя единичной ошибки в i-м разряде комбинацию с числом разрядов меньшим i, необходимо убедиться в том, что для всех остальных подлежащих исправлению векторов ошибок, имеющих единицы в i-м и более младших разрядах, используются опознаватели, отличные от уже использованных. В результате имеем:
Таблица 2.2
Вектор ошибкиОпознавательВектор ошибкиОпознаватель00000001
00000010
00000011
00000100
00000101
00000110
00001000
00001001000001
000010
000011
000100
000101
000110
001000
00100100001010
00001100
00010000
00010001
00010010
00010100
00011000
00100000001010
001100
001111
001110
001101
001011
000111
010000
Таким путем можно получить таблицу опознавателей для векторов ошибок данного типа с любым числом разрядов.
Поскольку опознаватели векторов ошибок с единицами в нескольких разрядах устанавливаются как суммы по модулю два опознавателей одиночных ошибок в этих разрядах, то для определения правил построения кода и сопоставления проверочных равенств достаточно знать только опознаватели одиночных ошибок в каждом из разрядов.
Для построения кодов, исправляющих независимые двойные ошибки, пачки ошибок из двух или трех символов и опознаватели ошибок в каждом из разрядов сведены в табл. 2.3, 2.4, 2.5, которые составлены с помощью ЭВМ.
Таблица 2.3
Код, исправляющий двойные независимые ошибкиТаблица 2.4
Код, исправляющий пачки в два и менее символов N разрядаОпознавательN разрядаОпознаватель1
2
3
4
5
6
7
8
90000001
0000010
0000100
0001000
0001111
0010000
0100000
0110011
10000001
2
3
4
5
6
7
8
900001
00010
00100
01000
01101
00111
01110
10000
10000
Таблица 2.5 Код, исправляющий пачки в три и менее символов
N разрядаОпознаватель1
2
3
4
5
6
7
8
9
100000001
0000010
0000100
0001000
0010000
0100000
0001001
0010010
0100100
1000000
2.1.3 Определение проверочных равенств
Пользуясь таблицей опознавателей одиночных ошибок в каждом из разрядов, нетрудно определить, символы каких разрядов должны входить в каждую из проверок на четность.
Возьмем в качестве примера табл. 2.1 опознавателей для кодов, предназначенных исправлять одиночные ошибки. В принципе можно построить код, усекая эту таблицу на любом уровне. Однако оптимальными будут коды, которые среди кодов, имеющих одно и то же число проверочных символов, допускают наибольшее число информационных символов, например: код (7,4) n=7, к=4.
Усечем эту таблицу на 7-м разряде и найдем номера разрядов, символы которых должны войти в каждое из проверочных равенств.
Предположим, что в результате первой проверки на четность для младшего разряда опознавателя будет получена единица. Очевидно, это может быть следствием ошибки в одном из разрядов, опознаватели которых в младшем разряде имеют единицу. Следовательно, первое проверочное равенство должно включать символы 1-го, 3-го, 5-го и 7-го разрядов :
.
Единица во втором разряде опознавателя может быть следствием ошибки в разрядах, опознаватели которых имеют единицу во втором разряде. Отсюда, второе проверочное равенство должно иметь вид:
.
Аналогично находим и третье равенство:
.
Чтобы эти равенства при отсутствии ошибок удовлетворялись при любых значениях информационных символов в кодовой комбинации, в нашем распоряжении имеется три проверочных разряда. Мы должны так выбрать номера этих разрядов, чтобы каждый из них входил только в одно из равенств. Это обеспечит однозначное определение значений символов в проверочных разрядах при кодировании. Указанному условию удовлетворяют разряды, опознаватели которых имеют по одной единице. В нашем случае это будут первый, второй и четвертый разряды.
Таким образом, для кода (7,4), исправляющего одиночные ошибки, искомые правила построения кода, т.е. соотношения, реализуемые в процессе кодирования, принимают вид :
Введение проверочного разряда, обеспечивающего четность числа единиц во всей кодовой комбинации, позволяет построить код (8,4), способный одновременно исправлять единичные ошибки и обнаруживать двойные. Используя таблицу опознавателей (табл.2.3) и рассуждая аналогичным образом, можно составить проверочные равенства для любого кода, исправляющего одиночные и независимые двойные ошибки. Например, для кода (8,2), получающегося усечением этой таблицы на 8-м разряде, найдем следующие соотношения, которые необходимо реализовать в процессе декодирования и кодирования
2.1.4 Мажоритарное декодирование групповых кодов
Мажоритарное декодирование базируется на системе проверочных равенств. Система последовательно должна быть разрешена относительно каждой из независимых переменных, причем в силу избыточности это можно сделать не единственным способом.
Любой символ выражается d различными, независимыми способами через комбинации других символов. При этом может использоваться тривиальная проверка . Результаты вычислений подаются на соответствующий этому символу мажоритарный элемент.
Последний представляет собой схему, имеющую d входов и один выход, на котором появляется единица, когда возбуждается больше половины входов. Если ошибки отсутствуют, то проверочные равенства не нарушаются, и на выходе мажоритарного элемента получаем истинное значение символа. Если число проверок d > 2S+1 , то появление ошибки кратности S и менее приводит к нарушению не более S проверок. Поэтому правильное решение может быть принято по большинству неискаженных проверок. Чтобы указанное условие выполнялось, любой другой символ (не проверяемый) должен входить не более, чем в одно проверочное равенство. В этом случае мы имеем дело с системой разделенных проверок.
Построим системы разделенных проверок для декодирования информационных символов рассмотренного ранее группового кода (8,2). Поскольку код рассчитан на исправление любых двойных ошибок, число проверочных равенств, для определения каждого символа должно быть не менее 5. Подставив в равенства 1 и 2 значения , полученные из равенства 5 и 6, и записав их относительно , совместно с равенствами 3 и 4 и тривиальным равенством получим систему разделенных проверок для символа . Аналогично получаем систему разделенных проверок и для символа . 2.2 Задание
Выполняется при домашней подготовке
1. Ознакомится с принципами построения групповых кодов.
2. Пользуясь табл. 2.1, 2.3, 2.4, 2.5, составить уравнения кодирования и декодирования для кодов:
(7,4), обеспечивающего коррекцию одиночных ошибок;
(8,4), обеспечивающего коррекцию одиночных ошибок и одновременное обнаружение двойных ошибок;
(7,3), обеспечивающего коррекцию двойных смежных ошибок;
(8,2), обеспечивающего коррекцию двойных независимых ошибок;
(9,3), обеспечивающего коррекцию пачек ошибок в три и менее
символов.
3. Закодировать конкретные совокупности информационных символов, заданных персонально каждому студенту преподавателем, для кодов, указанных в п.2.
4. Для конкретных векторов ошибок ( по три для каждого кода), выбранных студентом из всего множества возможных ошибок, определить опознаватели ошибок.
Выполняется в лаборатории
1. Ознакомится с описанием программного обеспечения.
2. При помощи специальных команд войти в кафедральную сеть и запустить на выполнение программу pomeh.exe.
3. Собрать схему (7,4).
4. Протестировать ее для pазных букв и вектоpов ошибки, исправляя схему пpи необходимости.
5. Пpоделать пункты 3 и 4 для кодов (8,4),(7,3),(8,2),(9,3).
2.3 Требования к отчету
Отчет должен включать:
1. Уравнения кодирования и декодирования кодов, указанных в п.2 задания.
2. Совокупность кодовых комбинаций, соответствующих заданным информационным символам, по каждому из кодов.
3. Совокупность опознавателей ошибок, соответствующих заданным векторам ошибок, по каждому из кодов.
4. Схемы кодирования и декодирования для одного из кодов, указанных в п.2, причем отчеты бригады в совокупности должны содержать схемы реализации всех исследуемых кодов.
2.4 Контрольные вопросы
1. Какова математическая структура группового кода?
2. Как составляется таблица опознавателей?
3. В чем сущность мажоритарного декодирования?
4. Как определяются уравнения кодирования и декодирования?
5. Как построить код, исправляющий одиночные и одновременно
обнаруживающий двойные ошибки?
6. Как построить код, обнаруживающий четырехкратные ошибки?
7. Как построить код, обнаруживающий тройные ошибки?
Документ
Категория
Рефераты
Просмотров
184
Размер файла
118 Кб
Теги
помехозащищенных, кода
1/--страниц
Пожаловаться на содержимое документа