Предварительная подготовка
1.1. Ознакомиться с описанием работы, изучить по указанной ниже литературе и ответить на следующие вопросы: - Что такое кодовое расстояние кода, как оно определяется? - Как связана способность кода обнаруживать и исправлять ошибки с кодовым расстоянием? - Что такое и какой вид имеют производящая и проверочная матрицы линейных кодов? - Какие корректирующие коды называются циклическими, их свойства? - Какие корректирующие коды называются свёрточными, их свойства? - Что такое производящий многочлен, как он используется для кодирования и декодирования? - Что такое синдром ошибки, как он определяется математически и в декодере? - Нарисуйте структурную схему синдромного декодера! В чём состоят проблемы его практической реализации? - В чём отличие декодера Меггита от обычного синдромного декодера? - В чём отличие декодера Касами-Рудольфа от обычного синдромного декодера? - Нарисуйте структурную схему мажоритарного декодера.Какие коды позволяют осуществлять мажоритарное декодирование? - Нарисуйте структурную схему порогового декодера. 1.2. Рассчитайте вероятность ошибки в кодовом слове на входе и выходе декодера для исследуемых кодов, если вероятность ошибки в канале с независимыми ошибками равна р (указана в таблице 2.1).
Таблица 2.1
1.3. Для подготовки к работе рекомендуется следующая литература: - А.А.Макаров, В.П.Прибылов. Помехоустойчивое кодирование в системах телекоммуникаций: Учеб. пособ., 2004. - А.А.Макаров. Методы повышения помехоустойчивости систем связи: Учеб. пособ., 1991. - А.А.Макаров, Л.А.Чиненков. Основы теории помехоустойчивости систем связи: Учеб. пособ., 1997. - А.А.Макаров, В.И.Ковязин. Автоматизация проектирования систем передачи данных: Учебное пособие, 1987.
2. Краткая теория Декодер Меггита представляет собой синдромный декодер, исправляющий одиночные ошибки, в памяти которого с целью упрощения хранится только один синдром ошибки S15(x)=x3+1 (соответствует последовательности ошибки ), синдромы остальных одиночных ошибок циклически сдвигаются в регистре синдрома до совпадения с S15(x); число тактов сдвига i (i=0,l,2...14) плюс единица равно номеру искаженного кодового элемента. Структурная схема декодера показана на рисунке 2.1. Рисунок 2.1- Декодер Меггита циклического кода (15,11)
Декодер работает следующим образом. Кодовое слово (с ошибками или без них) в виде последовательности из 15 двоичных символов поступает в буферный регистр и одновременно в регистр синдрома, где производится деление этого слова на производящий многочлен кода g(x)=x4+x+l в результате чего вычисляется синдром ошибки Sj(x): S0j, S1j, S2j, S3j - символы синдрома. Ошибка обнаруживается, если хотя бы один символ синдрома не равен нулю. Исправление ошибок производится в следующих 15 тактах. Если Sj(x)=S15(x), то ошибка в первом символе кодового слова, который находится в 15- ой ячейке буферного регистра. Тогда на первом такте схема {И} выдаёт единицу и в сумматоре по mod2 на выходе буферного регистра корректируется первый символ кодового слова. Если ошибка в другом символе, то производится циклический сдвиг синдрома Sj(x) в регистре синдрома по цепи обратной связи с учетом того, что вход декодера в цикле исправления ошибок отключен. На каждом i-ом такте проверяется равенство Sj+i(x)=S15(x) и в благоприятном случае на выходе схемы {И} появляется импульс коррекции ошибки, инвертирующий символ на выходе буферного регистра. На рисунке 2.2 приведена структурная схема декодера Касами-Рудольфа.
Рисунок 2.2 -Декодер Кассам и-Рудольфа для циклического кода Голея (23,12)
В данном декодере используется не оптимальный перестановочный метод декодирования, в котором с целью упрощения процедуры поиска ошибки используются циклические сдвиги синдромов ошибок и их сравнение с “покрывающими” синдромами (алгоритм Касами-Рудольфа). Для кода Голея (23,12): g(x)=x11+х9 +х7+х6 +х5+х+1 множество ошибок, вес (кратность) которых не превышает трёх, покрывается тремя последовательностями ошибок e1(x)=0,e17(х)=х16, е18(х)=х17, имеющих синдромы: S1(x)=0; S17(х)=х8+х7+х4+х3+х+1; S18(x)=x9+x8+x5+x4+x2+x. Декодер отслеживает синдром ошибок, отличающийся от S1(х) не более, чем в трёх позициях, а также синдромы ошибок, отличающиеся от S17(x) и S18 (x) не более, чем в двух позициях. Декодирование производится в течение двух циклов. В первом цикле в течение 23 тактов производится запись принятого кодового слова в буферный регистр (п1=0) и вычисление синдрома ошибки в синдромном регистре (п2=0). Во втором цикле (п=1) из 23 тактов производится поиск и исправление ошибок путем циклического сдвига синдрома ошибки и его сравнения с покрывающими синдромами в анализаторе синдрома. Одновременно циклически сдвигается кодовое слово в буферном регистре. Позиции ошибок обнаруживаются при удовлетворении какого-либо из неравенств в анализаторе синдрома; на выходе соответствующей схемы анализатора появляется сигнал, по которому выход синдромного регистра подключается (n2=1) к сумматору в цепи циклического сдвига буферного регистра для исправления ошибок. Если срабатывает вторая или третья схемы анализатора, то дополнительно исправляются ошибки в 17-ой или 18-ой ячейках буферного регистра в соответствии с номером покрывающего синдрома; одновременно производится стирание этого синдрома в синдромном регистре. После 23-го такта производится проверка состояния синдромного регистра и, если остаток не превышает двух единиц, его содержимое используется для коррекции состояний первых 11 ячеек буферного регистра. На этом декодирование заканчивается и на выход выдаются информационные символы, расположенные в первых 11 ячейках буферного регистра; одновременно на вход может подаваться новое кодовое слово (п1=0).
3. Лабораторное задание 3.1. Ознакомиться с интерфейсом программы и схемами кодера и декодера Меггита, при (n,k)=(7,4). 3.2. Задать исходную комбинацию на входе кодера циклического кода (7,4) и произвести кодирование. 3.3. Затем в канале указать ошибки в любых битах получившейся в результате кодирования комбинации. 3.4. Произвести декодирование получившейся комбинации с ошибкой, с помощью декодера Меггита и сравнить с исходной.
4. Порядок выполнения работы 4.1. Изучить теоретические сведения к данной лабораторной работе, приведенные в пункте 3. 4.2. Запустить программу, двойным кликом мыши по ярлыку с названием «Циклический код (7.4)». На экране появится окно с изображением кодера циклического кода (7,4) (Рисунок 2.3): Интерфейс программы в окне с кодером циклического кода (7;4): 1 - Исходная кодовая комбинация; 2 - Закодированная кодовая комбинация; 3 - Ячейки формирователя проверочных групп (ФПГ); 4 - Кнопка для начала кодирования (впоследствии становится кнопкой «Такт»); 5 - Кнопка для перехода в канал связи, чтобы внести ошибку.
Рисунок 2.3 – Модель кодера циклического кода (7,4)
4.3 На входе кодера необходимо ввести свою исходную информационную кодовую комбинацию, после чего нажать на кнопку «Начать».
Рисунок 2.4 – Модель кодера циклического кода (7,4)
С помощью кнопки «такт» происходит выполнение следующего такта. Содержимое ячеек формирователя проверочной группы каждого такта и значение элемента на входе нужно свести в таблицу 2.2:
Таблица 2.2
4.4 По истечению 7 тактов формируется закодированная кодовая комбинация, которую нужно записать в отчет. Затем программа выдает сообщение «Кодирование завершено!», следует нажать ОК и перейти к каналу с помощью кнопки «В канал».
Рисунок 2.5 – Окно канала
4.5 В канале необходимо указать ошибку в битах закодированной кодовой комбинации (в любом бите на выбор студента), после чего необходимо нажать кнопку «Декодировать» для перехода к декодеру Меггита. 4.6 На рисунке 6 приведена схема декодера Меггита для циклического кода (7,4), по которой будет происходить декодирование кодовой комбинации с ошибкой. Бит с ошибкой выделен красным цветом. Для начала декодирования необходимо нажать кнопку «Начать».
Рисунок 2.6 – Модель декодера Меггита
Интерфейс программы в окне с декодером Меггита: 1 - Закодированная кодовая комбинация с ошибкой; 2 - Результат декодирования; 3 - Ячейки ФПГ; 4 - Ячейки регистра задержки (РЗ); 5 - Кнопка для начала декодирования (впоследствии становится кнопкой «Такт»); 6 - Группа кнопок для дальнейшего действия: - Кнопка «Вернуться к кодеру» - если нужно задать другую исходную комбинацию и произвести её кодирование; - Кнопка «Вернуться к каналу» - если необходимо задать ошибку в другом бите закодированной комбинации; - Кнопка «Выход из программы» - если лабораторная работа выполнена, чтобы закрыть окно программы. 4.7 С помощью кнопки «такт» осуществляется переход к следующему такту. В вверху указывается действие текущего такта: - 0 такт – «Начальное состояние…» - 1-7 такт – «Идет загрузка в регистр…» - 8-14 такт – «Процесс исправления ошибки…» - 15-21 такт – «Выгрузка данных из регистра на выход…» После выполнения 21 такта на экране высвечивается сообщение «Процесс декодирования завершен!!!» (Рисунок 2.7). Необходимо нажать ОК и зафиксировать в отчете кодовую комбинацию на выходе и выделить в ней информационные элементы.
Рисунок 2.7 – Модель декодера Меггита
Содержимое ячеек формирователя проверочной группы каждого такта и значение элемента на входе при выполнении действий загрузки в регистр и процесса исправления ошибки нужно свести в таблицу 2.3:
Таблица 2.3
4.8 После окончания выполнения лабораторной работы следует закрыть программу, затем выключить компьютер.
5. Содержание отчёта Отчет должен содержать: - цель работы; - предварительный расчет; - структурные схемы кодера и декодера Меггита; - результаты кодирования и декодирования в виде таблиц 2.2 и 2.3; - выводы.
|