исследование помехоустойчивости матричного кода

advertisement
1. ИССЛЕДОВАНИЕ ПОМЕХОУСТОЙЧИВОСТИ
МАТРИЧНОГО КОДА
Цель работы.
Экспериментальное исследование характеристик матричного
кода в зависимости от вероятности ошибки в канале связи и формата матрицы кода.
Задание
1. Изучить принцип построения матричного кода [1,4].
2. Ознакомиться с лабораторной установкой, а также правилами
работы на ней.
3. Провести экспериментальные исследования характеристик
матричного кода.
4. Построить графики зависимости вероятности (частости)
правильного приема данных и эффективной скорости передачи
данных пользователю в зависимости от вероятности ошибки в
канале связи и формата матрицы.
Общие сведения о принципах построения матричных кодов
Матричный код является итеративным кодом и образуется
последовательным применением двух или трех кодов.
Информационные символы располагаются в виде матрицы или
таблицы (рис. 1.1).
Информационные
символы
Проверочные
символы по
строкам
Проверочные
символы по
столбцам
Проверка
проверок
Рис. 1.1. Расположение символов матричного кода
Каждая строка этой таблицы кодируется некоторым кодом с
дополнением проверочных элементов, затем кодируется каждый
столбец, причем произвольным кодом, и также дополняется
проверочными элементами. Символы, расположенные в правом
нижнем углу таблицы, получаются в результате проверки
проверочных элементов. В данной лабораторной работе
используется матричный код с проверкой на четность как по
строкам, так и по столбцам. Пример такого матричного кода
приведен на рис. 1.2, где информационная матрица содержит 7x7
элементов, а получаемый кодовый блок — 8x8 элементов.
1
1
0
0 1
0
1
0
0
1
1
1 0
0
0
1
1
0
1
1 1
1
0
1
1
1
1
0 1
1
1
0
0
0
1
1 0
0
1
1
1
0
1
0 1
1
1
1
1
1
1
1 0
0
0
0
1
0
0
0 0
1
0
0
Рис. 1.2. Пример матричного кода 8x8
Минимальное кодовое расстояние матричного кода равно
произведению кодовых расстояний применяемых кодов.
Минимальное кодовое расстояние при проверке на четность равно
2, поэтому для рассматриваемого матричного кода d min = 4. В
режиме обнаружения ошибок матричный код гарантирует
обнаружение трехкратных ошибок, а в режиме исправления однократных ошибок. В частности, обнаруживаются все ошибки
нечетной кратности, а также любые пакеты ошибок, длина которых
не превышает длины строки.
При возникновении однократной ошибки в результате
декодирования не совпадут одна проверка на четность по строке и
одна по столбцу, что позволяет определить положение общего для
данной строки и столбца искаженного информационного элемента
и исправить его.
Данный код не обнаруживает четырехкратные ошибки, если
искаженные элементы матрицы могут быть представлены как
вершины прямоугольника. Кроме того, возможно ложное
исправление «однократной» ошибки в случае трехкратной ошибки,
когда искаженные элементы матрицы образуют прямоугольный
треугольник. Такие искажения могут быть обнаружены, если
организовать дополнительную проверку на четность по диагонали
матрицы.
Лабораторная установка реализована на базе ПК, где реализуются
имитация однонаправленной системы передачи данных и
использование матричного кода.
В программе применен демонстрационный режим, где
показывается работа алгоритма, реализующего применение
матричного кода при передаче данных.
Порядок выполнения экспериментов
Ознакомиться с правилами работы на ПК. После включения
ПК на диске С найти каталог LABRAB и запустить программу
C:\LABRAB\ matkod. exe.
В программе предусмотрена возможность изменения скорости
вывода информации на экран монитора: по умолчанию время
вывода каждого символа равно 50 мс. Для изменения времени
задержки вывода символов на экран необходимо при запуске
программы после расширения «ехе» ввести новую величину
задержки в микросекундах. Например, если необходимо увеличить
время задержки до 100 мс, то в командной строке следует записать:
C\LABRAB\ matkod.exe 100.
После запуска программы Вы попадаете в «окно»
демонстрационного режима, где показан алгоритм прохождения
информации от передатчика к приемнику.
Далее, чтобы попасть в «окно» ввода исходных данных, Вы
должны нажать любую клавишу и ввести исходные данные:
Введите число столбцов п = ...
Введите число строк т = ...
Вероятность ошибки р= ...
Введите количество передаваемых бит х = ...
Переход после ввода одного параметра к вводу следующего
параметра осуществляется нажатием клавиши ENTER.
Вводя исходные данные, обратите особое внимание на
некоторые ограничения:
число столбцов от 2 до 7;
число строк от 2 до 10;
коэффициент ошибки от 0.0001 до 0.1 (при вводе
коэффициента ошибки будьте внимательны, так как в десятичном
числе число целых отделяется от числа десятков точкой, а не
запятой);
максимальное число передаваемых бит 10000.
Объем передаваемых данных за сеанс в битах задается
преподавателем.
Выбирая
формат
матрицы,
определяем
необходимое число блоков для передачи заданного объема данных
b =] х / (m  n) [ ,
где b — число блоков.
Далее нужно ввести информационную последовательность
нулей и единиц (длиной х). Для упрощения ввода передаваемой
информации достаточно ввести один информационный блок,
который будет повторяться нужное количество раз. После ввода
информационного блока нажмите ENTER и на экране монитора
будут отображены: исходная передаваемая и принимаемая
матрицы, а также матрица, полученная в результате декодирования.
Задаваясь вероятностью ошибки единичного элемента в
дискретном канале и изменяя формат матрицы, а соответственно, и
число блоков, экспериментально определяем блоки, в которых
ошибки обнаружены и не обнаружены.
Получение результатов декодирования ведется визуально с
экрана монитора, для чего осуществляется анализ числа
обнаруженных ошибок по строкам и по столбцам, ошибки
помечаются красным цветом. Если в результате декодирования
обнаружена однократная ошибка (несовпадение контрольной
4
суммы по одному столбцу и по одной строке), то такая ошибка
исправляется. Остальные ошибки в большинстве случаев
обнаруживаются. При этом возможны варианты, когда ошибки не
обнаруживаются совсем или происходит ложное исправление
правильно переданного единичного элемента
Чтобы перейти к просмотру следующих блоков, нажмите
любую клавишу. После просмотра всех информационных блоков,
чтобы попасть в «окно» просмотра результатов, нажмите ENTER.
Полученные результаты записать в табл. 1.1.
Таблица 1.1
Число принятых блоков
Формат ВероятЧисло
Вероятматрипереность праность
без с исправ- с обнару- с необнару- вильного
цы
ошибки в данных
N=mxn,
блоков оши- ленными женными женными
приема
КС
бит
mпрд бок ошибками ошибками ошибками данных
Ро
mбо
mоо
mио
Рпрм
mно
Эксперимент выполняется несколько раз согласно указанию
преподавателя. Если эксперимент надо продолжить, нажмите
ENTER, если нет — ESC.
По полученным экспериментальным данным вычислить
вероятность правильного приема данных в зависимости от
вероятности ошибки в канале связи и формата матрицы по
формуле:
Рпрм (m  n, p )  lim (( mбо  mис ) / mпрд )
t 
Затем вычисляется относительная скорость:


R(m  n, p )  (n  m) / n  n  N пров   Pпрм
где N пров — количество проверочных разрядов в матрице.
На основании полученных результатов построить графики
зависимостей вероятности (частости) правильного приема Рпрм и
относительной скорости приема R в дискретном канале от
выбранного формата матрицы (т х п).
5
ВНИМАНИЕ! Перед выключением компьютера необходимо
выйти из программы, щелкнув мышью по кнопке «Выход», и
выйти из Windows, нажав комбинацию клавиш «Alt + F4», после
чего подтвердить свое решение. Затем можно выключить
компьютер.
Содержание отчета
Отчет должен содержать:
- структурную
схему
системы
передачи
данных,
реализованной в данной лабораторной работе;
- упрощенную функциональную схему алгоритма работы
данной СПД и ее описание;
- таблицы и графики, отражающие результаты экспериментов;
- выводы.
Контрольные вопросы
1. Принципы построения матричного кода?
2. Как осуществляется исправление и обнаружение ошибок?
3. Какие ошибки не обнаруживаются и почему?
4. Каким достоинством обладает матричный код?
5. Как зависит вероятность правильного приема от формата
матрицы?
6
2. ИССЛЕДОВАНИЕ ПОМЕХОУСТОЙЧИВОСТИ
ЦИКЛИЧЕСКОГО КОДА
Цель работы.
Экспериментальное исследование характеристик циклического
кода в зависимости от вероятности ошибки в канале связи и длины
передаваемого блока.
Задание
Изучить принцип построения циклического кода [2, 4, 6].
Ознакомиться с лабораторной установкой, а также правилами
работы на персональном компьютере.
Провести экспериментальные исследования характеристик
циклического кода в зависимости от вероятности ошибок в канале
связи и длины передаваемого блока.
Общие сведения о принципах построения
циклических кодов
Циклический код относится к систематическим блочным (n,k)кодам, в которых k первых разрядов представляют собой
комбинацию первичного кода, а последующие (n - k) разрядов
являются проверочными. Код предназначен для обнаружения и
исправления ошибок, возникающих при передаче кодовых
комбинаций по каналу связи.
В основе построения циклических кодов лежит операция
деления передаваемой кодовой комбинации на образующий
неприводимый полином степени r. Остаток от деления
используется при формировании проверочных разрядов. При этом
операции
деления
предшествует
операция
умножения,
осуществляющая сдвиг влево k-разрядной информационной кодовой комбинации на r разрядов.
При
декодировании
принятой
n-разрядной
кодовой
комбинации опять производится деление на образующий полином.
Если остаток от деления (синдром) равен нулю, то считается,
что ошибок нет. В противном случае, с помощью полученного
синдрома можно определить номер разряда принятой кодовой
комбинации, в котором произошла ошибка, и исправить ее.
7
Однако не исключается возможность возникновения в кодовых
комбинациях многократных ошибок, что может привести к
ложным исправлениям и/или необнаружению ошибок при
трансформации одной разрешенной комбинации в другую.
В целях повышения вероятности правильного обнаружения и
исправления возникающих ошибок в лабораторной работе nразрядная кодовая комбинация дополняется (п+1)-м единичным
элементом для проверки всей кодовой комбинации на четность.
В полученном коде кодовое расстояние d = 4, что обеспечивает
исправление однократных, обнаружение трехкратных и всех
нечетных ошибок. Увеличение кодового расстояния до 4 позволяет
проводить сравнительный анализ эффективности циклического и
матричного кодов.
Для определения степени образующего полинома можно
воспользоваться выражением
г  log2(n+l).
На основании полученного значения r из табл. 2.1 необходимо
выбрать образующий полином Р(х).
Таблица 2.1
r
Р(х)
r
Р(х)
2
111
6
1000011
3
1011
1100111
4
5
10011
100101
7
111101
110111
10001001
10001111
10011101
8
111100111
100011101
101100011
Лабораторная установка по исследованию циклического кода
реализована на базе ПК.
С помощью данной лабораторной установки реализуется
имитация однонаправленной системы передачи данных. Здесь
8
передача данных от передатчика к приемнику осуществляется с
помощью программы на языке программирования QuickBasic. В
последней моделируются передающая часть аппаратуры передачи
данных (АПД) с кодирующим устройством циклического кода и
проверкой на четность, дискретный канал связи, у которого можно
изменять вероятность искажений кодовых единичных элементов от
0 до 0.5, и приемная часть АПД с декодирующим устройством.
Вся передаваемая и принимаемая информация отображается на
экране дисплея.
Порядок выполнения экспериментов
Ознакомиться с правилами работы на персональном
компьютере (ПК). Под руководством преподавателя после
включения ПК выбрать нужный файл, содержащий программу
«Исследование помехоустойчивости циклического кода».
Вероятность искажения кодовых единичных элементов при
передаче их по дискретному каналу связи (вероятность ошибки ро)
необходимо выбрать из табл. 2.2.
В ходе проводимых экспериментов определяется количество
кодовых комбинаций, принятых без ошибок m6o, с исправленными
однократными ошибками тио, с обнаруженными ошибками тоо , с
необнаруженными ошибками тно и с ложными исправлениями тли.
Таблица 2.2
№ п/п
Ро
1
2  10
2
1
1  10-1
3
4
5
6
7
8
5  10-2 2  10-2 1  10-2 5  10-3 2  10-3 1  10-3
После запуска программы необходимо ввести следующие
исходные данные: длину информационной комбинации k; степень
образующего полинома r; количество передаваемых блоков N;
вероятность ошибки ро; образующий полином Р(х); собственно
информационную комбинацию первичного кода.
Все перемещения между полями ввода осуществляются
клавишей TAB. Параметры к, r, N, p0 набираются с помощью
цифровой клавиатуры, причем дробные значения вводятся с
помощью десятичной точки (например, 0.05 или 0.5). При переходе
к вводу образующего полинома появляется меню полиномов по
9
степени возрастания r. Из него с помощью стрелок управления
курсором надо выбрать нужный полином и нажать клавишу
ENTER. Выбранный образующий полином появится в своем поле
ввода.
При вводе информационной комбинации первичного кода
набирается произвольная комбинация двоичных элементов длины
k.
В случае некорректного ввода исходных данных или ошибок
при вводе, на экране дисплея появляется соответствующее
сообщение (например, «Все поля должны быть заполнены!»,
«Вероятность ошибки должна быть меньше 1!», «Недопустимая
форма двоичного числа!» и т. д.). Пока не будут исправлены все
ошибки в исходных данных, дальнейшая работа программы
невозможна.
При правильном вводе исходных данных можно приступать к
дальнейшей работе. В программе предусмотрены два режима
работы: демонстрационный (пошаговый) и непрерывный. Для
выбора демонстрационного режима необходимо нажать клавишу
F5. В этом режиме передача производится по одному блоку, для
того чтобы передать следующий блок надо снова нажать F5 и т. д.
Для выбора непрерывного режима служит клавиша F9. В этом
режиме передача всех N блоков осуществляется непрерывно, без
остановок.
Слева на экране находится счетчик переданных блоков,
показывающий текущий номер переданного блока.
В ходе эксперимента результаты кодирования и приема
кодовых комбинаций отображаются непосредственно на экране
дисплея после приема каждого блока. Все ошибочно принятые
единичные элементы на выходе канала связи для наглядности
отмечены красными прямоугольниками.
Визуально можно отмечать правильность исправления
циклическим
кодом одиночной
ошибки
и
сравнивать
передаваемую информацию с принятой.
Внизу экрана находится статистическая таблица, в которую
заносятся результаты эксперимента. После приема каждого блока
отображается число блоков, принятых без ошибок, с исправленной
одиночной
ошибкой,
с
обнаруженными
ошибками,
с
10
необнаруженными ошибками и с ложными исправлениями. В
конце сеанса эти данные необходимо записать в табл. 2.3.
Таблица 2.3
Номер сеанса
Вероятность ошибки р0
Длина блока n
Степень Р (х) r
Количество переданных блоков N
Количество принятых блоков:
- без ошибок тбо
- с исправленной ошибкой тио
- с обнаруженными ошибками тоо
- с необнаруженными ошибками тно
- с ложными исправлениями тли
Для того чтобы начать новый сеанс передачи, нажмите
клавишу ENTER, а для выхода из программы - клавишу F10.
Вся необходимая информация о назначении функциональных
клавиш отображается в строке подсказок внизу экрана.
По полученным экспериментальным данным необходимо
вычислить частость правильного приема блоков в зависимости от
вероятности ошибки в канале и длины передаваемых блоков.
На основании полученных результатов построить графики
зависимости вероятности (частости) правильного приема блоков от
вероятности ошибки в канапе и длины передаваемых блоков.
Содержание отчета
Отчет должен содержать:
- упрощенную функциональную схему алгоритма работы
данной СПД;
- таблицы и графики, отражающие результаты экспериментов;
- выводы.
11
Контрольные вопросы
1. Принципы построения циклических кодов?
2. Что означает неприводимый примитивный многочлен?
3. Как проводится выбор образующего полинома?
4. Как проводится исправление ошибок?
5. Какие ошибки не обнаруживаются и почему?
6. Какими достоинствами обладает циклический код?
12
3. ИССЛЕДОВАНИЕ ЦИКЛИЧЕСКИХ КОДОВ,
ИСПРАВЛЯЮЩИХ ПАКЕТЫ ОШИБОК (код ФАЙРА)
Цель работы.
Экспериментальное исследование характеристик циклического
кода Файра в зависимости от вероятности ошибки в канале связи,
длины пакета ошибок и исправляющей способности кода Файра.
Задание
Изучить принцип построения кода Файра [2, 5]. Ознакомиться с
лабораторной установкой, а также правилами работы на
персональном компьютере.
Провести экспериментальные исследования характеристик кода
Файра, в зависимости от вероятности ошибок в канале связи,
длины пакета ошибок и исправляющей способности.
Общие сведения о принципах построения кода Файра
Код Файра относится к систематическим (линейным) блочным
разделимым (n,k)-кодам, в которых k первых разрядов
представляют собой комбинацию первичного кода, а последующие
r = (п - к) разрядов являются проверочными. Предназначен для
обнаружения и исправления пачки ошибок длиной b,
возникающих при передаче кодовых комбинаций по каналу связи.
В общем виде код Файра представляет собой циклический
коды, образующий полином которого имеет вид
P( x ) = g(x)(x c +1),
где g(x) — неприводимый полином степени r'.
Неприводимые примитивные полиномы представлены в табл. 3.1.
Таблица 3.1
2
3
4
5
r'
100101
111
1011
10011
101111
110111
13
Выбор неприводимого полинома производится из условия, что
степень неприводимого полинома r' больше или равна пачке
исправляемых ошибок b.
Число корней неприводимого полинома
е = 2г'-1.
Степень двучлена (хс+1) определяется выражением c > r',
причем с некратно е.
Длина кодовой комбинации
п = НОК(с  е),
где п —
наименьшее общее кратное с и е .
Число проверочных разрядов
r = с + r'.
Число информационных разрядов
k = п - r.
При кодировании исходная комбинация с дописанными в
младшие разряды r нулями делится на образующий полином, а
полученный остаток дописывается к исходной комбинации.
Полученная кодовая комбинация передается в канал связи.
При декодировании производится раздельное деление
принятой кодовой комбинации на полином g(x) степени r' и на
полином (хс+1).
В результате такого деления в сдвигающих логических
регистрах, соответствующих многочленам g(x) и (хс+1),
получаются остатки R1(x) и R2{x), которые будут нулевыми, если
ошибок не было. Если же прошла одиночная пачка ошибок длиной
b < r', то остатки будут отличны от нуля и не равны между собой.
Для исправления данной пачки ошибок продолжают деление,
сдвигая кодовые комбинации в логических регистрах до тех пор,
пока не произойдет совпадение остатков в логических регистрах.
При этом входная кодовая комбинация сдвигается и в буферном
регистре.
14
БЗУ на n
элементов
Сдвигающий
логический
регистр
БЗУ на r
элементов
Ключ
Схема сравнения
остатка от
деления
Сдвигающий
логический
регистр на (xc+1)
Рис. 3.1. Блок-схема декодирующего устройства кода Файра
Совпадение остатков от деления в обоих логических регистрах
свидетельствует об обнаружении пакета ошибок, а количество
дополнительных сдвигов кодовых комбинаций без числа
проверочных разрядов указывает на место, которое занимает
ошибочный пакет в декодируемой кодовой комбинации. Кодовая
комбинация остатка от деления на неприводимый полином
является корректирующей комбинацией, которая добавляется к
искаженно принятой комбинации в момент открытия ключа, тем
самым исправляя возникающие ошибки (рис. 3.1).
Лабораторная установка исследования циклического кода
реализована на базе ПК.
С помощью данной лабораторной установки реализуется
имитация однонаправленной системы передачи данных, передача
данных от передатчика к приемнику осуществляется с помощью
программы на языке программирования Turbo Pascal 7. В
15
последней моделируется передающая часть аппаратуры передачи
данных (АПД) с кодирующим устройством кода Файра,
дискретный канал связи, у которого можно изменять вероятность
искажений от 0.001 до 0.1, а также варьировать в заданных
пределах размер пакета ошибки, и приемная часть АПД с
декодирующим устройством. Вся передаваемая и принимаемая
информация отображается на экране дисплея.
Порядок выполнения экспериментов
Ознакомиться с правилами работы на персональном
компьютере и включить его и дисплей. Под руководством
преподавателя выбрать нужный диск, каталог и файл fairkod.exe.
Выделить его с помощью стрелок управления курсором и нажать
клавишу ENTER, что приведет к автоматическому запуску
программы «Исследование циклического кода Файра исправляющего пачки ошибок». Практически все переходы из одного
информационного поля в следующее осуществляются с помощью
клавиши ENTER, в иных случаях присутствуют другие
комментарии.
Введите длину пакета исправляемых ошибок ( до 5) ......... ……………………….3
Введите количество передаваемых блоков (не менее 1000)…………………. 1000
Введите вероятность искажения бита в канале (от 0.1 до 0.001)………………..0.1
Введите максимальную длину возможного пакета ошибок (от 2 до 10)……….10
Выберите степень необходимого неприводимого полинома (не более 5-ой)…….3
Введите выбранный полином в виде двоичной комбинации . . . . ......................1011
Введите количество корней неприводимого полинома … … … … … … … . . . . . . 7
Введите степень двучлена ............................................... ………………………. . . . 8
Введите длину кодовой комбинации .................................... ……………………...56
Введите число проверочных разрядов в комбинации…………………………….11
Введите число информационных разрядов в комбинации . ……………………...45
Выберите режим 1 — демо, 0 — рабочий ............................ ……………………….0
ВАШ 0БРАЗУЮЩИЙ ПОЛИНОМ - 101100001011
После нажатия кнопки Enter по вашим исходным данным будет происходить
случайная генерация информационных комбинаций с заданной вами длинной их
кодирование и посыл в "Канал" с последующим декодированием и сбором
статистики
Рис. 3.2. Пример ввода данных на экране дисплея
16
Объем и содержание передаваемых данных за сеанс задается
преподавателем. Задаваясь вероятностью ошибки в дискретном
канале и изменяя длину пакетов ошибок, а также (когда это
необходимо)
образующие
многочлены,
экспериментально
определяется число принятых блоков, не содержащих ошибок,
содержащих ошибки, которые исправляются циклическим кодом,
число блоков, в которых ошибки не обнаружены или имеются
ложные исправления.
После запуска программы и появления на экране дисплея
заставки лабораторной работы необходимо нажать клавишу
ENTER. Затем следует ввести исходные данные: длину пакета
исправляемых ошибок, количество блоков информации (для
набора статистики), вероятность ошибки, возможный размер
пакета ошибок, степень неприводимого полинома, неприводимый
полином в двоичном коде, количество его корней, степень двучлена для образования образующего полинома, длину
информационной комбинации, количество проверочных и
информационных разрядов, а также выбрать режим демо или
рабочий (рис. 3.2).
Далее программа покажет Вам образующий полином для ваших
данных и письменно пояснит дальнейшие действия.
Все перемещения между полями ввода осуществляются
клавишей ENTER. Параметры набираются с помощью цифровой
клавиатуры. В случае неверного ввода данных программа сообщит
об ошибке ввода и перейдет в режим повторного ввода
ошибочного параметра. Пока не будут исправлены все ошибки в
исходных данных, дальнейшая работа программы невозможна.
При правильном введении исходных данных можно приступать
к дальнейшей работе.
Номер блока/пак.ошибок 48/3
Исходная комбин. 010011001111101011110011010111100110001001111
комбин. после код-я 01001100111110101111001101011110011000100111110000000101
Комбин_на выходе кан. 01001100111110101111001101011110011000100111101100000101
Коррект-ий многочлен
110
Декодированная комбин.
17
Кол-во ошибок…….………1
Остат. от дел-я исх. конб. на производящий полином………………………10000000101
Остат. от деления исх. камб. на неприв. полином. 34й сдвиг………………………1100
Неприводимый полином………………………………………………………………….1011
Остаток от дел. остатка исх. комб. на неприв. полином…………………….................111
Остат. от дел-я исх. комб. на заданн. двучлен…………………………………...000011100
Заданным двучлен…………………………………………………………………..100000001
Остат. от дел-я остатка исх. комб. на задан.двучлен…………………………….00011100
Сумма остатков от деления. Если = 6 указыв. место ошибки………………….00011011
Чтобы прервать процесс, нажмите любую клавишу.
Рис. 3.3. Пример демонстрационного режима на экране дисплея
В
программе
предусмотрены
два
режима
работы:
демонстрационный (пошаговый) и непрерывный. При выборе
демонстрационного режима (рис. 3.3) программа переходит в
пошаговый режим при приеме ошибочной комбинации и
демонстрирует при нажатии ENTER или <пробел> этапы процесса
кодирования и декодирования. При выборе непрерывного режима
передача всех N блоков осуществляется непрерывно, без
остановок.
Слева на экране (рис. 3.3) находится счетчик переданных
блоков, показывающий текущий номер переданного блока. В ходе
эксперимента результаты кодирования и приема кодовых
комбинаций отображаются непосредственно на экране дисплея
после приема каждого блока. Все ошибочно принятые единичные
элементы на выходе канала связи для наглядности отмечены
черными символами.
Визуально можно отмечать правильность исправления
циклическим
кодом одиночной
ошибки
и
сравнивать
передаваемую информацию с принятой на выходе декодера.
На следующем экране (рис. 3.4) находится статистическая
таблица, в которой отображаются результаты эксперимента: число
принятых блоков, число привнесенных ошибок, исправляемый
пакет ошибок, число блоков, принятых без ошибок, с
обнаруженными ошибками (с указанием размера пакета ошибок).
18
Исправляемый пакет ошибок/Колич-во ошибок/передано блоков 3/106/1000
Количество верно декодированных блоков с ошибками. . . . . . . . .....................43
Исправлено блоков ошибок длиной 1 бит ...........………………………………18
Исправлено блоков ошибок длиной 2 бит ...........………………………………..9
Исправлено блоков ошибок длиной 3 бит ...........………………………………16
Исправлено блоков ошибок длиной 4 бит ...........………………………………..0
Исправлено блоков ошибок длиной 5 бит ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0
Исправлено блоков ошибок длиной 6 бит ...........………………………………..0
Исправлено блоков ошибок длиной 7 бит ...........………………………………..0
Исправлено блоков ошибок длиной 8 бит………………………………………..0
Исправлено блоков ошибок длиной 9 бит………………………………………..0
Исправлено блоков ошибок длиной 18 бит .........………………………………..0
Количество неверно декодированных блоков с ошибками………………….6 3
Неисправлено блоков ошибок длиной 1 бит. ......………………………………..0
Неисправлено блоков ошибок длиной 2 бит .......………………………………..0
Неисправлено блоков ошибок длиной 3 бит .......………………………………..0
Неисправлено блоков ошибок длиной 4 бит ..... …………………………………8
Неисправлено блоков ошибок длиной 5 бит .......………………………………15
Неисправлено блоков ошибок длиной б бит .......………………………………..6
Неисправлено блоков ошибок длиной 7 бит ...... ………………………………12
Неисправлено блоков ошибок длиной 8 бит ... … … … … … … … … … … … . 7
Неисправлено блоков ошибок длиной 9 бит…………………………………….7
Неисправлено блоков ошибок длиной 18 бит .... ………………………………..8
Рис. 3.4. Пример статистических данных на экране дисплея
В конце сеанса эти данные необходимо записать в таблицу.
Для того чтобы начать новый сеанс, надо заново запустить
файл fairkod.exe. Вся необходимая информация о назначении
функциональных клавиш отображается в строке подсказок внизу
экрана.
По полученным экспериментальным данным:
- определить закономерность правильного приема блоков в
зависимости от вероятности ошибки в канале, исправляющей
способности и длины пакета ошибок в передаваемых блоках;
- на основании полученных результатов построить графики
вероятности появления неверно декодированных комбинаций в
зависимости от длины пакета ошибок для неприводимых
полиномов степеней 2, 3, 4, 5.
Содержание отчета
Отчет должен содержать:
19
- упрощенную функциональную схему алгоритма работы данной
СПД;
- таблицы и графики, отражающие результаты экспериментов;
- выводы.
Контрольные вопросы
1. Принципы построения циклических кодов.
2. Что означает неприводимый примитивный многочлен?
3. Как проводится выбор образующего полинома?
4. Как проводится исправление ошибок?
5. Какие ошибки не обнаруживаются и почему?
6. Какими достоинствами обладает код Файра?
20
4. ИССЛЕДОВАНИЕ ПОМЕХОУСТОЙЧИВОСТИ
ЦЕПНОГО КОДА
Цель работы. Экспериментальное исследование характеристик
цепного кода в зависимости от вероятности ошибки в канале связи
и шага сложения его информационных элементов при
формировании проверочных разрядов.
Задание
Изучить принцип построения цепного кода [1, 3, 7].
Ознакомиться с основными правилами работы на персональном
компьютере.
Провести
экспериментальные
исследования
характеристик цепного кода.
Построить графики зависимости частости (вероятности)
необнаруженных ошибок от вероятности ошибки в канале связи и
шага сложения информационных элементов.
Общие сведения о принципах построения цепного кода
Цепной код является самым простым из всех известных
сверточных кодов, которые относятся к непрерывным или
рекуррентным кодам.
В цепном коде каждый проверочный элемент формируется
путем сложения двух информационных элементов, отстоящих
один от другого на t элементов, по модулю 2:
a k  a k t  bk ,k t
где t — шаг сложения (рис. 4.1).
Поскольку каждый информационный элемент участвует в
формировании двух проверочных элементов, а каждый
проверочный элемент формируется по двум информационным,
число проверочных элементов, сформированных за время t, будет
равно числу информационных элементов, поступивших за то же
время на вход кодирующего устройства.
Следовательно, избыточность цепного кода равна 1 .
2
21
... a k t
ak

bk  t , k
a k  2t ...
a k t

bk , k  t

bk t ,k  2t
Рис. 4.1. Формирование проверочных элементов цепного цикла
В канал связи передается последовательность импульсов, в
которой за каждым информационным следует проверочный
a1 , b2 , a3 , b4, a5, b6 и т. д.
Принцип декодирования принимаемой последовательности
единичных элементов и вытекающие из него корректирующие
возможности цепного кода становятся очевидными при анализе
принципа формирования проверочных элементов.
При
декодировании
принимаемая
последовательность
единичных
элементов
делится
на
две
независимые
последовательности: информационную и проверочную. Из
информационной последовательности по тому же принципу, что и
при кодировании, снова формируется проверочная последовательность.
Единичные элементы вновь полученной проверочной
последовательности сравниваются с единичными элементами
принятой
проверочной
последовательности.
Если
соответствующие сравниваемые элементы совпадают, считается,
что ошибки нет, в противном случае должно быть принято
решение об ошибке.
Изменение значения информационного элемента, например, a k
(переход 1 в 0 или 0 в 1), приводит к изменению значений двух
связанных с ним проверочных элементов bk t , k и bk , k  t Наличие
двух несовпадений проверочных элементов, сдвинутых друг от
друга на t информационных элементов, указывает на искажение
информационного элемента, общего для обоих проверочных
22
элементов ( a k в рассматриваемом примере). В этом случае
значение
необходимо
инвертировать.
Регистрация
ak
несовпадения лишь одного проверочного элемента указывает на
ошибочный прием только этого проверочного элемента.
Для исправления ошибочно принятого информационного
элемента (например, a k ) необходимо, чтобы предыдущий и
последующий информационные элементы этой цепи ( a k t и a k t ), а
также соответствующие проверочные элементы ( bk t , k и bk , k  t ) были
приняты правильно.
Это условие выполняется полностью, если длина пакета
ошибок не превышает величины 2t (t информационных и t
проверочных, которые передаются в канал связи с задержкой
2t+1).
При этом необходимо, чтобы между последним элементом
данного пакета ошибок и первым элементом последующего пакета
ошибок было принято подряд не менее 4t неискаженных
элементов.
...ak 2t , bk 2t 1 ...ak , bk 1

...ak  2t , bk  2t 1

...ak  4t , bk  4t 1 ...

Рис. 4.2. Последовательность единичных
элементов, передаваемых в канал связи
Несмотря на свою простоту, цепной код позволяет исправлять
одиночные и групповые ошибки.
23
Порядок выполнения экспериментов
Включить компьютер и запустить Windows. После появления
окна
диспетчера
программ,
открыть
групповое
окно
ПРИЛОЖЕНИЯ и, щелкнув дважды мышью по значку программы
«Цепной код», запустить программу.
Выполняемая
работа
состоит
из
двух
этапов:
демонстрационный и исследовательский. На первом этапе
имеется возможность проанализировать в замедленном темпе
последовательность операций в процессах кодирования и
декодирования цепного кода, а на втором — провести исследования зависимости вероятности (частости) необнаруженных
ошибок от вероятности ошибки в канале связи и длины пакета
ошибок b  2t , исправляемых цепным кодом.
В демонстрационном режиме в поле открывшегося окна
необходимо задать передаваемую кодовую комбинацию, для чего
установить размер кодовой комбинации в битах (не более 10).
Кодовую комбинацию можно задать в виде меандра, щелкнув
мышью по соответствующей кнопке, или в виде случайной
кодовой комбинации, щелкнув мышью по кнопке «Задать КК».
Кроме того, перед началом кодирования необходимо добавить
перед кодовой комбинацией t нулей, а в конце — 2t нулей, для чего
достаточно щелкнуть мышью по соответствующей кнопке.
Кодирование заданной кодовой комбинации начинается с
задания шага кодирования, который может изменяться до 10, и
задержки между циклами в секундах (до 100 с), определяющей
темп процесса кодирования. Для запуска кодера щелкните мышью
по кнопке «Старт». При этом для демонстрации процесса
кодирования в строке «Кодирующее устройство» белым цветом
выделены позиции информационных элементов кодовой комбинации, участвующие в формировании текущего проверочного
разряда.
В строке «Информационные элементы» отображаются разряды
кодируемой кодовой комбинации.
В строке «Проверочные элементы» отображаются разряды
проверочной кодовой комбинации, получаемые в результате
суммирования по модулю 2 соответствующих информационных
разрядов.
24
В строке «Передаваемая кодовая комбинация» отображается
процесс
расстановки
проверочных
разрядов
между
информационными комбинациями, а в строке «Кодовая
комбинация в канале связи» отображается передаваемая в канал
связи кодовая комбинация целиком.
Декодирование принятой кодовой комбинации начинается
после положительного ответа на вопрос: «Начать декодирование».
В ходе демонстрационного процесса имеется возможность
остановить его в любой момент времени, для чего достаточно
щелкнуть мышью по кнопке «Пауза», которая меняется на
«Старт» для продолжения процесса.
На этапе исследования, в соответствии с заданием
преподавателя, необходимо получить статистические данные о
характеристиках цепного кода. Для перехода в этот режим
достаточно щелкнуть мышью по кнопке «Статистика».
В поле открывшегося окна необходимо сделать следующие
установки:
шаг кодирования t до 10;
- задержку, если необходимо;
- количество передаваемых бит до 106;
- вероятность ошибки в канале связи, при этом необходимо
установить галочку «создать ошибки».
В ходе экспериментальных исследований задают вероятность
ошибки в канале связи и получают зависимость числа
необнаруженных ошибок E от величины шага кодирования t:
Е (t) = Nош – Nиспр.ош..
Содержание отчета
Отчет должен содержать таблицу с результатами исследований
и графики Е (t).
В выводах необходимо указать наиболее рациональное t для
соответствующей вероятности ошибки в канале связи.
Контрольные вопросы
1. Как строится кодер цепного кода?
2. Как строится декодер цепного кода?
3. От чего зависит исправляющая способность цепного кода?
25
ЛИТЕРАТУРА
1. Кларк Дж.т Кейн Дж. Кодирование и исправление ошибок в
системах цифровой связи. М.: Радио и связь. 1987.
2. Когновицкий ОС. Основы циклических кодов: учеб.
пособие /ЛЭИС. Л., 1990.
3. Нейефах Л.Э. Сверточные коды для передачи дискретной
информации. М.: СвязьЛ979.
4. Передача дискретньк сообщений: учебник для вузов / Под
ред. В.П. Шувалова М: Радио и связь, 1990.
5. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки / Пер
с англ. М.: Мир. 1976.
6. Пушкин В.М., Сергиевский Б.Р. Методы кодирования
дискретных сообщений: учеб. пособие/ЛЭИС. Л., 1982.
7. Шляпоберский В.И. Основы теории передачи дискретных
сообщений. М.: Связь, 1973.
СОДЕРЖАНИЕ
1. Исследование помехоустойчивости матричного код…………3
2. Исследование помехоустойчивости циклического кода……..8
3. Исследование циклических кодов, исправляющих
пакеты ошибок (код Файра)................................................ ………...12
4. Исследование помехоустойчивости цепного кода .. ………...18
Литература ..................................................................... ………...22
26
Download