Вы находитесь на странице: 1из 36

Государственный комитет информатизации и связи Украины

Одесская национальная академия связи им. А.С. Попова

Кафедра документальной электросвязи

ИЗУЧЕНИЕ ПРИНЦИПОВ ПОСТРОЕНИЯ


КОДЕКОВ ЦИКЛИЧЕСКОГО КОДА

Методическое пособие
к практическому занятию и лабораторной работе № 7
по курсу
«СИСТЕМЫ ДОКУМЕНТАЛЬНОЙ ЭЛЕКТРОСВЯЗИ»
Раздел
«Защита информации от искажений
в системах документальной электросвязи»

УТВЕРЖДЕНО
методическим советом академии
Протокол № 10
от 11. 03 2003 г.

Одесса 2004
2 Изучение принципов построения кодеков циклического кода

УДК 621.391.25(075), 621.394


План УМИ 2003 г.

Составители Н.В. Захарченко, А.А. Вараксин, Г.Г. Филатов


Программное обеспечение С.А. Славин
Рецензент доц. А.Л. Федоров
Ответственный редактор доц. Б.С. Владишевский

Изложены теоретические вопросы синтеза кодовых комбинаций


циклического кода. Приведены примеры построения кодеков циклического
кода, сформированных в соответствии с расчетными оптимальными
параметрами кодовой комбинации циклического кода, полученной по
результатам анализа относительной пропускной способности дискретного
канала связи.
Предназначено для самостоятельной подготовки студентов и
практической работы в лаборатории. Использование программного
обеспечения для программного эмулятора кодека циклического кода позволяет
производить расчет параметров циклического кода с построением структурных
схем. Может быть использовано при дипломном и курсовом проектировании.
Пособие предназначено для студентов, обучающихся по специальностям:
7.092401 – телекоммуникационные системы; 7.092402 – информационные сети;
6.092400 – почтовая связь.

ОДОБРЕНО
на заседании кафедры
документальной электросвязи
и рекомендовано к печати
Протокол № 8
от 25. 02 2003 г.
Изучение принципов построения кодеков циклического кода 3

ПОСТРОЕНИЕ КОДОВЫХ КОМБИНАЦИЙ


И КОДЕКОВ ЦИКЛИЧЕСКИХ КОДОВ
Основные принципы построения циклических кодов
Ц и к л и ч е с к и е к о д ы являются разновидностью систематических
кодов и обладают всеми их свойствами. Первоначально они были созданы с
целью упрощения схем кодирования и декодирования. Впоследствии
обнаружились их высокие корректирующие свойства, что обеспечило им
широкое применение на практике и, в частности, широкое применение в
современных телекоммуникационных технологиях [1, 3].
При построении циклических кодов кодовые комбинации принято
представлять в виде полиномов
G(x) = an-1xn-1 + an-2xn-2 + an-3xn-3+ …+ a1x + a0,

где а0 ,а1, . . . , аn-1 – коэффициенты, принимающие значения 0 или 1.


Например, кодовую комбинацию 1100101 можно записать как
G(x) = х6 + х5 + х2 +1.
Основное свойство рассматриваемых кодов состоит в том, что
циклический сдвиг единичных элементов разрешенной кодовой комбинации
также приводит к разрешенной кодовой комбинации. Таким образом, если
комбинация 1000111 является разрешенной, то комбинации 0001111, 0011110 и
т. д. также принадлежат к числу разрешенных кодовых комбинаций.
Циклические коды принято определять с помощью так называемых
производящих полиномов Р(х) степени r. Производящая матрица циклического
кода может быть образована из производящего полинома путем циклического
сдвига последнего (или, что то же самое, умножения его на х, х2, …, хr-1):
P( x)
xP( x)
G ( x) =
x 2 P ( x) .
x k −1P( x)
Непосредственно из производящей матрицы следует, что все
разрешенные кодовые комбинации циклического кода без остатка делятся на
производящий полином. Напомним, что здесь и далее имеется в виду деление
по модулю 2. Последнее выполняется почти так же, как и обычное деление, с
той лишь разницей, что в процессе деления вычитание заменяется сложением
по модулю 2. То обстоятельство, что каждая разрешенная комбинация без
остатка делится на производящий полином, есть весьма удобным способом
определения принадлежности принятой комбинации к числу разрешенных.
Рассмотрим принцип построения циклических кодов. Каждую кодовую
комбинацию G(x) простого k-элементного кода умножим на xr, а затем разделим
4 Изучение принципов построения кодеков циклического кода

на образующий полином степени r. В результате умножения степень каждого


члена, входящего в полином G(x), повышается на r. При делении произведения
xrG(x) на Р(х) получается частное Q(x) такой же степени, что и G(x). Кроме
того, если произведение xrG(x) не делится нацело на Р(х), то появляется остаток
R(x):
x r G ( x) R( x)
= Q( x) ⊕ ,
P( x) P( x)
где знак ⊕ обозначает суммирование по модулю 2.
Поскольку частное Q(x) имеет ту же степень, что и G(x), то оно также
является комбинацией простого k-элементного кода. Умножая обе части
равенства на Р(х), имеем
F(x) = Q(x)P(x) = xrG(x) ⊕ R(x).
Таким образом, кодовая комбинация циклического кода может быть
получена двумя способами:
1) умножением k-элементной комбинации простого кода на образующий
полином P(x);
2) умножением k-элементной кодовой комбинации простого кода на
одночлен xr и добавлением к этому произведению остатка от деления
произведения xrG(x) на P(x).
Первый способ приводит к образованию неразделимого циклического
кода. Неразделимость значительно усложняет процесс декодирования, поэтому
на практике используется второй способ построения кодовых комбинаций
циклического кода. Этот способ дает возможность получить производящую
матрицу сразу в канонической форме:
G = Ek ; C r , k ,
где Сr,k – матрица, состоящая из r столбцов и k строк, причем каждая строка
есть остаток от деления строки единичной матрицы Ek, дополненной нулями, на
образующий полином.
Проверочная матрица может быть также построена обычным способом,
исходя из образующей матрицы. Надо заметить, что построенная таким
образом проверочная матрица внешне может отличаться от построенной
матрицы с помощью проверочного полинома. Однако обе матрицы всегда
могут быть сведены к одному виду.
Кодовые комбинации должны отличаться друг от друга наличием и
чередованием нулей и единиц. В качестве параметра, который дает
возможность отличать кодовые комбинации друг от друга, является кодовое
расстояние (расстояние по Хемменгу). Кодовое расстояние между
комбинациями определяется числом единиц, получаемых после суммирования
двух любых кодовых комбинаций кода по модулю 2. Для избыточных кодов, в
том числе и циклических, кодовое расстояние между кодовыми комбинациями
должно быть вседа не меньше, чем минимальное кодовое расстояние (d0).
Изучение принципов построения кодеков циклического кода 5

Минимальное кодовое расстояние связано с числом обнаруживаемых и


исправляемых ошибок следующим образом:
d0 ≥ tобн + 1; d0 ≥ 2tисп + 1,
где tобн – число или кратность обнаруживаемых ошибок: tисп – число или
кратность исправляемых ошибок; d0 – минимальное кодовое расстояние.
Для исправления всех ошибок кратности до tисп и одновременного
обнаружения всех ошибок кратности не более tобн (при tобн ≥ tисп) кодовое
расстояние должно удовлетворять условию
d0 ≥ tобн + tисп + 1.
Минимальное кодовое расстояние лишь частично характеризует
корректирующие свойства избыточного кода, так как они позволяют
обнаруживать и исправлять ошибки более высокой кратности, чем
закладываемые в расчеты параметры кода. Число разрешенных кодовых
комбинаций определяется числом информационных разрядов и равно
М = 2k = 2n-r,
где r – число проверочных разрядов. Таким образом, число разрешенных
кодовых комбинаций в 2r раз меньше общего числа комбинаций.
Избыточностью кода называют отношение r/n. Вопрос о минимально
необходимой избыточности кода при заданных минимальных кодовых
расстояниях и длине кода в общем случае пока не решен. Существует лишь ряд
верхних и нижних оценок (границ) количества избыточных (проверочных)
разрядов помехоустойчивых кодов, которые приведены ниже:
граница Хэмминга
 d 0 −1 
 2 
r ≥ log2  1 + ∑ C i
n ;
 i =0 
 
верхняя граница Плоткина
r ≥ 2d – 2 – log2 d;
граница Элайеса
 (2d − 1) 
r≥
m
log2C n 
− log 2 d , где m = 0,5  1 − 1 − ;
2 
 
нижняя граница Варшамова–Гильберта
d 0 −1
 d 0 −1 i 
r
2 ≥ 1+ ∑C , i
n или r ≥ log 2 1 + ∑ Cn  .
i =0  i =0 
Наиболее оптимальное приближение обеспечивает критерий Варшамова.
Представленные граничные условия позволяют сделать вывод, что при
выполнении одного из них имеется возможность построить код с заданными
6 Изучение принципов построения кодеков циклического кода

параметрами. Для кодов с d0 = 3 получено точное соотношение между числом


проверочных разрядов r и длиной кода n:

r ≥ log2(n + 1), или 2r ≥ k + r +1.


Зная длину информационной части циклического кода, по последней
приведенной формуле путем подбора числа проверочных разрядов можно легко
рассчитать основные параметры циклического кода: n, k, r, так как n = k + r. В
специальной таблице (см. далее таблицу 2) по рассчитанным параметрам
выбирается образующий полином Р(х) – и в конечном итоге строится кодек
циклического кода.
Общим свойством всех разрешенных кодовых комбинаций циклических
кодов является их делимость без остатка на некоторый выбранный полином,
называемым производящим или образующим полиномом (образующий
полином Р(х)). Синдромом ошибки или вектором ошибки в циклических кодах
является наличие остатка от деления принятой кодовой комбинации
циклического кода на образующий полином. Для того, чтобы полиномы,
отображающие кодовые комбинации циклического кода, имели нужные
свойства, необходимо выполнение условий, которые отображают свойства
образующего полинома Р(х):
• образующие полиномы Р(х) должны быть неприводимыми, т.е. не
делиться без остатка ни на какой другой полином и не могут иметь в своем
разложении другие полиномы (в этом случае образующий полином делится без
остатка только сам на себя);
• двучлен вида xn + 1 должен делиться на образующий полином Р(х)
без остатка (имеется в виду обычная операция деления).
К параметрам циклического кода следует отнести:
n – длина кодовой комбинации (разрядов);
k – длина информационной части кодовой комбинации (разрядов);
r – длина проверочной части кодовой комбинации (разрядов);
d0 – минимальное кодовое расстояние;
Р(x) – вид образующего полинома циклического кода.
Приведем пример 7-разрядного циклического кода (7, 4) с минимальным
кодовым расстоянием d0 = 3. Для построения кода требуются три проверочных
разряда (r = 3) и, следовательно, образующий полином должен быть третьей
степени. Пусть образующий полином имеет вид Р(х) = х3 + х + 1 = 1011. Тогда
образующая матрица выглядит следующим образом:
1 0 0 0 1 0 1
0 1 0 0 1 1 1
G= '
0 0 1 0 1 1 0 .
0 0 0 1 0 1 1
Изучение принципов построения кодеков циклического кода 7

Напомним, что проверочные разряды 101 получились в результате


деления комбинация 1000000 на образующий полином 1011, 111 – в результате
деления 0100000 на тот же образующий полином и т. д.
Корректирующая способность циклического кода полностью
определяется видом образующего полинома. Для некоторых циклических кодов
можно сформулировать довольно простые принципы выбора вида образующего
полинома. Образующий полином любой степени строится на основе таких
неприводимых многочленов, которые не делятся без остатка на любой другой
многочлен, и должен входить в качестве сомножителя в разложении хn + 1.
Для определения оптимальных параметров циклического кода
используется выражение для относительной пропускной способности
R = C/B = k/n.
Для обнаружения, а затем для последующего исправления ошибок, при
заданной вероятности необнаруженной ошибки Рнеобн.ош, будем исходить из
следующего соображения. Если в кодовой комбинации из n бит появляются t-
кратные ошибки с вероятностью, которая меньше заданной величины Рнеобн.ош,
то эту кодовую комбинацию исправлять не нужно. Поэтому первая задача
заключается в определении значения tm, при котором вероятность появления
кодовой комбинации длиной n бит с t-кратной ошибкой Рош(n, tm) будет
удовлетворять условию Рош(n, tm) ≥ Рнеобн.ош [4, 6].
Длина кодовой комбинации n должна быть выбрана таким образом,
чтобы обеспечить наибольшую пропускную способность дискретного канала
связи. При использовании корректирующего кода кодовая комбинация
содержит n разрядов, из которых k разрядов являются информационным, а r
разрядов – проверочными:
n = k + r.
Если в системе связи используются двоичные сигналы и каждый
единичный элемент несет не более одного бита информации, то между
скоростью передачи информации и скоростью модуляции существует
соотношение
С = (k/n)B,
где С – скорость передачи информации, бит/с; В – скорость модуляции, Бод.
Очевидно, что чем больше отношение k/n приближается к 1, тем меньше
отличается С от B и тем выше относительная пропускная способность системы
передачи данных. Известно, что для циклических кодов с минимальным
кодовым расстоянием d0 = 3 справедливо соотношение:
r ≥ log2(n + 1).
Видно, что чем больше n, тем ближе отношение k/n приближается к 1.
Приведенное соотношение справедливо и для больших d0, хотя точных
соотношений для связей между r и n нет. Существуют только верхние и нижние
8 Изучение принципов построения кодеков циклического кода

границы оценки минимального кодового расстояния, которые были приведены


выше. С точки зрения внесения постоянной избыточности в кодовую
комбинацию, выгодно выбирать длинные кодовые комбинации, так как с
увеличением n относительная пропускная способность увеличивается, стремясь
к пределу, равному 1.
В реальных каналах связи действуют помехи, приводящие к появлению
ошибок в кодовых комбинациях. При обнаружении ошибки декодирующим
устройством в системах с решающей обратной связью (РОС) производится
переспрос группы кодовых комбинаций [6]. Во время переспроса полезная
информация не передается, поэтому скорость передачи информации
уменьшается. Можно показать, что
k Pобн.ош ( М + 1) 
C = B 1 − ,
n  Рпп + Робн.ош ( М + 1) 
где Робн.ош – вероятность обнаружения ошибки декодером (вероятность
переспроса); Рпп – вероятность правильного приёма (безошибочного приема)
кодовой комбинации; М – емкость накопителя передатчика на определенное
число кодовых комбинаций [6].
При малых вероятностях ошибки в канале связи (Рош < 4·10-3) вероятность
Робн.ош также мала, поэтому знаменатель мало отличается от 1 и можно считать

C≈B
k
[1 − Pобн.ош (M + 1)].
n
При независимых ошибках в канале связи, при nPош << 1 имеем
Робн.ош ≈ n Рош .
Тогда скорость передачи информации можно определить соотношением

C≈B
k
[1 − nPош (M + 1)] .
n
Емкость накопителя
М = «3 + 2tp/tкомб »,
где tp – время распространения сигнала по каналу связи, с; tкомб – длительность
кодовой комбинации из n разрядов, с; знак «…» обозначает округление
полученного результата до целого числа в большую сторону.
В формуле определения емкости накопителя расчетные параметры
tp = L/V; tкомб = n/B,
где L – расстояние между оконечными станциями, км (фактически длина
магистрали передачи данных); V – скорость распространения сигнала по каналу
связи, км/с; В – скорость модуляции, Бод.
Изучение принципов построения кодеков циклического кода 9

После простейших подстановок при независимом распределении ошибок


в дискретном канале связи для относительной скорости передачи окончательно
имеем
k
R= 1 − Pош ( 4n +
2 LB
).
n  V 
При наличии ошибок в канале связи величина R является функцией от
параметров Рош, n, k, L и V. Следовательно, существует оптимальное n, при
котором относительная пропускная способность будет максимальной.
Последняя формула еще более усложняется в случае зависимых ошибок в
канале связи (при пакетировании ошибок), что отображается моделью Пуртова.
Для обнаружения числа ошибок tобн в кодовой комбинации длиной в n разрядов
необходим циклический код с минимальным кодовым расстоянием d0 не менее
d0 ≥ tобн + 1. В данном случае необходимо определить вероятность P(≥ tобн, n):
P(≥ tобн, n) = (n/tобн)1-α Рош = [n/ (do –1)] 1-αРош.
C некоторым приближением можно связать вероятность P(≥tобн, n) с
вероятностью необнаруженной декодером ошибки Рнеобн.ош и числом
проверочных разрядов в кодовой комбинации
Рнеобн.ош ≈ (1/2r) P(≥ tоб, n).
Подставляя значение P(≥ tобy, n) в предыдущую формулу с заменой tобн
на do –1, получим
r = «(1 – α)log2 n/(do –1) + log2 Pош – log2Pнеобн..ош ».
При расчетах на ЭВМ удобнее пользоваться десятичными логарифмами.
После преобразований получаем:
r = «3,32[(1 – α)lg n/(do – 1) + lgPош – lgPнеобн.ош]».
Произведя замену k на n – r с учетом значения r, из предыдущей
формулы получим
k/n = {1– 3,32/n[(1 – α)lg n/(do –1) + lgPош – lgPнеобн.ош]}.
C учетом коэффициента группирования ошибок α имеем формулу
R = 1 – Рош n1-α [4 + 2LB/(Vn)].
Окончательно имеем формулу для расчета относительной пропускной
способности системы передачи данных:
R = {1 – 3,32/n[(1– α) lg n/(do – 1) + lgPош – lgPнеобн..ош]} х
х [1 – Рош ·n1-α (4 + 2LB/(Vn))].
Длину кодовой комбинации циклического кода следует выбирать равной
m
2 – 1, где m – целое число (5, 6, 7, 8, …), т. е. равной 31, 63, 127, 255, 511,
1023, 2047 и т. д.
10 Изучение принципов построения кодеков циклического кода
К параметрам дискретного канала следует отнести коэффициент
группирования ошибок α и вероятность ошибки Рош.
После определения оптимальной длины кодовой комбинации n,
обеспечивающей наибольшую относительную пропускную способность R,
определяем число проверочных разрядов r, обеспечивающих заданную
вероятность необнаруженной ошибки Рнеоб.ош при заданной кратности ошибок
tобн внутри кодовой комбинации и заданной вероятности ошибок Рош в
дискретном канале связи.
Схемы кодеров и декодеров систематических кодов могут быть
упрощены, если наложить определенные дополнительные требования на
структуру кодовых комбинаций. Значительное упрощение достигается при
использовании кодов, в которых кодовые комбинации обладают свойствами
цикличности.
Основные принципы построения кодеков циклических кодов
Рассмотрим вначале построение кодеров циклических (n, k) кодов. При
их построении, как правило, используется деление полинома комбинации
простого k-разрядного кода, умноженного на хr, что позволяет получить
разделимый код. Построение кодера показано на рис. 1, а. В состав его входят
r-разрядный регистр сдвига, три ключа и двухвходовые сумматоры по модулю
2, причем число их на единицу меньше числа ненулевых членов образующего
полинома Р(х). Структура логических обратных связей в регистре сдвига
полностью определяется видом образующего полинома
Р(х) = а0 + а1 х + а2 х2 + … + аr-1 xr-1 + ar xr.
Сумматоры по модулю 2 (m2) присутствуют в схеме в том случае, если
соответствующие коэффициенты а1, а2, …, аr-1 равны 1.
Работает схема следующим образом. Вначале электронный ключ ЭК2
закрыт, а электронные ключи ЭК1 и ЭК3 – открыты. Информационная
последовательность (кодовая комбинация простого k-элементного кода)
поступает одновременно на вход и на входной сумматор. В процессе ее
прохождения на k-том такте в ячейках регистра сдвига накапливаются
двоичные элементы r проверочных разрядов. С поступлением k+1-го такта
электронные ключи ЭК1 и ЭК3 закрываются, а электронный ключ ЭК2
открывается. Записанные в ячейках регистра сдвига r проверочных разрядов за
r тактов поступают на выход кодирующего устройства.
Рассмотрим работу схемы кодера на примере циклического (7, 4) кода.
Для данного кода выберем образующий полином P(x) = x3 + x + 1 → 1011.
Схема кодирующего устройства имеет вид, изображенный на рис. 1, б.
Функции ключей выполняют логические схемы И1, И2, И3 совместно с
управляющим триггером Т1.
Пусть на вход кодирующего устройства поступает информационная
последовательность 1001. Проверочные разряды формируются за первые k
(k = 4) тактов и за время последующих r (r = 3) тактов выводятся на выход
кодера. Сформированная таким образом комбинация 1001110 передается в
дискретный канал связи.
Изучение принципов построения кодеков циклического кода 11

ВХОДНОЙ СУММАТОР
ЭК3
m2

ar-1 ar-2
ЭК1 ЭК2
m2 m2

ВХОД r r-1 r-1 r-2 r-2

1
a2 a1 ar
m2 m2

2 2 1 1
1-й такт
Т
ВЫХОД
k+1-й такт

а)
1-й такт
Т1 m2 &

2 3

5-й такт

& &
m2
1 2
3 2 2 1
ВХОД

ВЫХОД

б)
Рисунок 1 – Структурная схема кодера циклического кода:
а – кодер циклического (n, k) кода; б – кодер циклического кода (7, 4)

Рассмотрим декодеры циклических кодов. Построение декодера для


обнаружения ошибок приведено на рис. 2.
12 Изучение принципов построения кодеков циклического кода

Буферный регистр
ВХОД
ВЫХОД
& & & &

k+1 k k k-1 k-1 1 1

&

k-2

m2 Декодирующий регистр
1-й такт
Т

1 m2 m2

k+1-й такт n r n-1 1 k+1

“ОШИБКА”

Рисунок 2 – Структурная схема декодера (n, k) циклического кода

В состав декодера входят: буферный регистр на k разрядов,


декодирующий регистр, схема которого подобна схеме кодера, логические
схемы ИЛИ, И с триггером, выполняющие функции ключей.
Работает схема следующим образом. Принимаемая информационная
последовательность записывается одновременно в буферный и в
декодирующий регистры. На (k + 1)-м такте электронный ключ Иk+1
закрывается и в этом случае в буферном регистре оказываются лишь
информационные разряды принимаемой кодовой комбинации. Проверочные
разряды продолжают поступать в декодирующий регистр. На (n + 1)-м такте,
после приема последнего разряда кодовой комбинации, открывается
электронный ключ Иk+2. Если кодовая комбинация принята без ошибок, то в
ячейках декодирующего регистра будут записаны только одни нули, а сигнал
“ошибка” будет отсутствовать. Наличие хотя бы в одной ячейке
декодирующего регистра единицы свидетельствует об ошибках в принимаемой
информации. На выходе схемы ИЛИ в таком случае появится сигнал “ошибка”,
который может быть использован для стирания принятой с ошибками кодовой
комбинации, накопленной в буферном регистре. Стирание производится путем
подачи запирающего сигнала на электронные ключи, включенные между
ячейками памяти буферного регистра. Связь последующих ячеек памяти с
Изучение принципов построения кодеков циклического кода 13

предыдущими обрывается – в схему буферного регистра подается тактовый


импульс, переводящий все ячейки памяти регистра в нулевое состояние.
Если декодер предназначен для исправления ошибок, то необходимо
указать местоположение ошибочно принятых информационных разрядов. С
этой целью в состав декодера вместо схемы ИЛИ включают дешифратор
синдрома, вырабатывающий на своем выходе сигнал “1” при фиксации в
ячейках декодирующего регистра остатка, отличного от нулевого. Появление
единиц подбирается по времени таким образом, чтобы в выходном сумматоре
по модулю 2 оно совпадало с прохождением ошибочно принятого
информационного бита. При этом ошибочный бит, пройдя через выходной
сумматор, меняет знак на обратный, т. е. исправляется [5].
В качестве примера рассмотрим декодер циклического кода (9, 5) с
образующим полиномом Р(х) = х4 + х + 1, исправляющий однократные ошибки.
Это так называемый декодер Меггита (рис. 3), использующий неалгебраические
методы декодирования групповых (блочных) кодов. Для определения
местоположения элемента с ошибкой в принятой кодовой комбинации
циклического кода используют остаток от деления данной кодовой комбинации
на образующий полином Р(х). Получаемый остаток R(x) играет роль синдрома
ошибки (лат. sindrom – указатель).
Реализуется эта процедура путем сопоставления остатка R(x) с
содержимым таблицы синдромных комбинаций, сформированных путем
деления векторов ошибок e(x) на образующий полином Р(х). Для выбранного
кода (9, 5) вектор одиночной ошибки e(x) = х8 (10000000) делится на
образующий полином Р(х) = х4 + х + 1, образуя остаток S8(x) = х2 + 1. Если в
принятой комбинации циклического кода ошибка находится в старшем (9-м)
разряде (х8), то остаток от деления ее на Р(х) будет совпадать с S8(x).
Аналогично формируются синдромные комбинации для векторов
7 6 5 4 3 2 1 0
ошибок х , х , х , х , х , х , х , х . Для выбранного циклического кода со
значностью n = 9 имеем:
х8 → х2 + 1; х7 → х3 + х + 1; х6 → х3 + х2; х5 → х2 + х ;
х4 → х + 1; х3 → х3; х2 → х2; х1 → х; х0 → 1.
Сравнивая поочередно и поэлементно остаток R(x) с синдромными
комбинациями Si(x), получают информацию об ошибочном элементе в
принятой комбинации циклического кода.
На рис. 3 приведена схема декодера Меггита, исправляющая однократные
ошибки, которые соответствуют рассматриваемому примеру. Здесь: D2 –
последовательный регистр, для приема информационной части комбинации
циклического кода; D12 – устройство формирования короткого импульса от
фронта перехода единичного сигнала из 0 в 1; D16 – двоичный счетчик; D17 –
устройство памяти (ЗУ), для хранения таблицы синдромных комбинаций.
14 Изучение принципов построения кодеков циклического кода
ВХОД D1 D2
& RG
D 1
2 D3
3 ВЫХ.
m2
C 4 В

D4 D5
m2 m2
D6 D7 D8 D9
D Т D Т D Т D Т
D10
& C C C C

D13 D14
1-й D12 D Т m2
D11 D15
такт
S Т F C 1
m2
R D Т
6-й m2
такт C
Выходы
Т m2
распределителя D
приема
C

D Т

D16 D17
ЗУ Дешифратор
C СТ
A0 1 синдрома
1
2 A1 2
3 A2 3
R 4 A3 4

Рисунок 3 – Схема декодера циклического кода


с исправлением одиночных ошибок
Изучение принципов построения кодеков циклического кода 15

Декодер Меггита, в зависимости от размера кода и минимального


кодового расстояния d0, может исправлять все двукратные ошибки, до 30 %
трехкратных ошибок, остальные ошибки – в режиме обнаружения. Также
возможно обнаружение пакетов ошибок размером до четырех элементов.
Однако сложность декодера возрастает с ростом числа исправляемых ошибок.
Так, алгоритм исправления двукратных ошибок требует использования так
называемых циклов определения: однократного цикла и по одному
добавочному циклу для каждой возможности комбинаций из пары ошибок. Это
приводит к 19 циклам проверок и к 255 синдромным комбинациям.
Практическая реализация кодеков циклического кода на современном
уровне производится программно или программно-аппаратно, так как
алгоритмы синтеза циклических кодов достаточно легко поддаются
минимизации и, как правило, реализуются в специализированной микросхеме с
внешним управлением. Структурные схемы кодера и декодера циклического
кода представлены на рис.4 и 5 соответственно [5].
На рис. 4: ИС – источник сообщения; буферный накопитель,
необходимый для временной задержки последующих информационных блоков
с целью формирования кодовой комбинации циклического кода для текущего
информационного блока; ПН – промежуточный накопитель, необходимый для
того, чтобы за k тактов были сформированы r проверочных разрядов для
поступившего в кодер текущего информационного блока в устройстве
получения остатка Д1; УУ– устройство управления; ЭК1 и ЭК2 –электронные
ключи, управляемые УУ; ЗГ– задающий генератор необходимый для создания
тактовых импульсных последовательностей ТИ1 и ТИ2.
Цикл работы кодера для передачи n единичных элементов составляет n
тактов, которые определяют длину кодовой комбинации циклического кода,
содержащей k разрядов текущего информационного блока и r проверочных
разрядов. Тактовые сигналы формируются передающим распределителем,
который на схеме не указан.
Первый цикл работы кодера длится k тактов. За это время на выходе
кодера через открытый ключ 2 в дискретный канал поступят k единичных
элементов текущего информационного блока. Следует помнить, что на выходе
кодера (или на входе дискретного канала) будет измененная скорость
модуляции В’ = Вn /k, которую на приеме необходимо преобразовывать в
номинальную скорость модуляции приемника В.
Одновременно информационные элементы поступают на устройство Д1
для деления на многочлен Р(х) с целью получения проверочных элементов.
Деление осуществляется многотактовым фильтром с числом ячеек, равным
числу проверочных разрядов. Число сумматоров в устройстве равно числу
ненулевых членов многочлена Р(х) минус 1. Сумматоры устанавливаются
перед ячейками, соответствующими ненулевым членам порождающего
полинома Р(х). После k тактов в ячейках устройства деления окажется
записанным остаток от деления.
16 Изучение принципов построения кодеков циклического кода

ОК
Сигнал обратного
Блокировка Буферный накопитель канала

В k k-1 … 1 УУ
ИС
ЭК2
ЭК1
k k-1 … 1 вых
В’ к ДК

ПН Д1
k k-1 … 1

ТИ1 ТИ2
ЗГ

Рисунок 4 – Структурная схема кодера циклического кода


При воздействии k + 1 тактового импульса ключ 1 закрывается, а ключ 2
открывается и переключается во второе состояние. За оставшиеся r тактов
элементы остатка от деления через ключ 2 поступают на выход кодера.
Получаем сформированную кодовую комбинацию циклического кода, которая
поступает в дискретный канал связи.
На рис. 5 показана структурная схема декодера циклического кода: ДЛЗ–
дискретная линия задержки на n ячеек; Д2 – устройство получения остатка;
ДСО –дешифратор синдрома ошибки; ПСМ – преобразователь скорости
модуляции; ПС – получатель сообщения.
Функционирование схемы декодера сводится к следующему. Принятая
кодовая комбинация поступает в дискретную линию задержки и одновременно
в устройство получения остатка (делитель Д2), который содержит r ячеек и где
за k тактов формируется синдром или вектор ошибки. Схема устройства
получения остатка полностью аналогична схеме деления кодера, которая
подробно рассматривалась выше. Если в результате деления получится нулевой
остаток (синдром S(x) = 0), то последующие тактовые импульсы спишут
информационные элементы на выход декодера через преобразователь скорости
модуляции, который согласует номинальные скорости модуляции источника и
получателя сообщений. При наличии ошибок в принятой комбинации синдром
S(x) ≠ 0. Это означает, что после k-го такта хотя бы в одной ячейке устройства
получения остатка будет записана «1».
Изучение принципов построения кодеков циклического кода 17

В’ Дискретная линия задержки (ДЛЗ) В


Вход
n-1 … 1
n + ПСМ ПС

B’= Bn/k
Сигнал “стирание”

Д2

1 2 … r

РУ
ДСО

ТИ2 ТИ1
ЗГ

Рисунок 5 – Структурная схема декодера циклического кода

Поскольку циклический код может использоваться в двух режимах, то


это находит отображение на рисунке 5. В режиме обнаружения ошибки от
устройства Д2 поступает в решающее устройство сигнал запрета – и принятый
информационный блок в декодере уничтожается, что подразумевает наличие
обратного канала для системы передачи данных (см. рис. 4). Данная процедура
показана на рис. 5 пунктирной линией. Одновременно сигнал стирания
используется как команда на блокировку приемника и переспрос по обратному
дискретному каналу связи.
В режиме исправления ошибок в устройстве ДСО анализируется вектор
ошибки. По определению, как правило однократной, ошибки выдается команда
решающему устройству РУ, которое при прохождении информационного блока
через сумматор по модулю 2 исправляет обнаруженную ошибку. Наличие ПСМ
необходимо для согласования скоростей модуляции системы передачи данных
и оконечного оборудования получателя сообщений ПС.
18 Изучение принципов построения кодеков циклического кода

Практическое занятие
Синтез кодовых комбинаций циклического кода
Цель практического занятия
Целью практического занятия является изучение алгоритма построения
разделимого помехоустойчивого циклического кода. Необходимо по исходным
данным синтезировать информационный блок, закрытый, в соответствии с
алгоритмом, проверочными разрядами циклического (n, k) кода.
Задание на практическое занятие
1 По разделу “Основные принципы построения циклических кодов”
данного пособия изучить принципы построения неразделимых и разделимых
циклических (n, k) кодов.
2 Изучить алгоритм построения циклического разделимого кода:
• перевести информационный блок (в простейшем случае первичную
кодовую комбинацию), полученный набором кодовых комбинаций первичного
кода, в полиномиальную форму записи (G(x));
• после выполненного расчета выбрать образующий полином Р(х),
максимальная степень которого равна числу проверочных разрядов
синтезируемого циклического кода. Образующий полином выбирается по
специальной таблице, которая приведена ниже (табл. 2);
• полученный полином информационного блока умножить на xr, где
r – максимальная степень образующего полинома, которая равна числу
проверочных разрядов синтезируемого циклического кода
A(x) = G(x) xr;
• полученный преобразованный полином A(x) информационного блока
разделить на выбранный образующий полином Р(х). В этом случае мы
получаем остаток, который выполняет роль проверочных разрядов R(x) кодовой
комбинации синтезируемого циклического кода;
• составить кодовую комбинацию синтезируемого циклического (n, k)
кода, который получается сложением полиномов A(x) и R(x) по модулю 2:
F(x) = A(x) ⊕ R(x);
• произвести проверку синтезируемой кодовой комбинации цикличес-
кого кода путем деления полинома F(x) на выбранный образующий полином
Р(х) и оценить полученный результат.
По сути, последнюю операцию выполняет декодирующее устройство
циклического кода. Нулевой остаток говорит о правильности синтезируемой
кодовой комбинации циклического кода (или о принятии на приеме
информационного блока без ошибок). Получение ненулевого остатка указывает
на наличие ошибки или ошибок в кодовой комбинации (или о том, что
информационный блок принят с ошибками).
3 Составить словесный алгоритм исправления одиночной ошибки для
схемы на рис. 5.
Изучение принципов построения кодеков циклического кода 19

4 По заданию преподавателя с помощью кодовых таблиц первичных


кодов составить информационный блок, состоящий из собственного имени
студента или инициалов его фамилии, имени и отчества (имя или Ф. И. О.).
Первичные коды КОИ-7 и КОИ-8 представлены на рис. 6…8, а первичный код
МТА-2 (ранее имел аббревиатуру МТК-2) – в табл. 1.
5 По приведенным в описании формулам определить необходимые
параметры циклического (n, k) кода.
6 По рассчитанным параметрам циклического кода из табл. 2 выбрать
образующий полином P(x).
7 Используя алгоритм получения кодовой комбинации, в соответствии с
индивидуальным вариантом задания, синтезировать кодовую комбинацию
циклического кода.
8 Произвести проверку правильности получения кодовой комбинации
циклического кода, используя последний пункт в алгоритме синтеза.
Отчет по практическому занятию должен содержать результаты по
пунктам 1…8 задания на практическое занятие.
б7 0 0 0 0 1 1 1 1
Номера
б6 0 0 1 1 0 0 1 1
разрядов
б5 0 1 0 1 0 1 0 1

б7 б6 б5 б4 б3 б2 б1 № 0 1 2 3 4 5 6 7
0 0 0 0 0 ПУС АР1 Пробел 0 @ P ◥ p
0 0 0 1 1 НЗ (СУ1) ! 1 A Q a q
0 0 1 0 2 НТ (СУ2) ” 2 B R b r
0 0 1 1 3 KT (СУ3) # 3 C S c s
0 1 0 0 4 КП СТП ¤ 4 D T d t
0 1 0 1 5 КТМ НЕТ % 5 E U e u
0 1 1 0 6 ДА СИН & 6 F V f v
0 1 1 1 7 ЗВ КБ ◤ 7 G W g w
1 0 0 0 8 ВШ АН ( 8 H X h x
1 0 0 1 9 ГТ КН ) 9 I Y i y
1 0 1 0 10 ПС ЗМ * : J Z j z
1 0 1 1 11 ВТ АР2 + ; К [ k {
1 1 0 0 12 ПФ РФ , < L \ l |
1 1 0 1 13 ВК РГ – = M ] m }
1 1 1 0 14 ВЫХ РЗ . > N ^ n _
1 1 1 1 15 ВХ РЭ / ? O - o ЗБ

Рисунок 6 – Кодовая таблица КОИ-7. Латинский регистр


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

б7 0 0 0 0 1 1 1 1
Номера
б6 0 0 1 1 0 0 1 1
разрядов
б5 0 1 0 1 0 1 0 1
б7 б6 б5 б4 б3 б2 б1 № 0 1 2 3 4 5 6 7
0 0 0 0 0 ПУС АР1 Пробел 0 ю п Ю П
0 0 0 1 1 НЗ (СУ1) ! 1 а я А Я
0 0 1 0 2 НТ (СУ2) ” 2 б р Б Р
0 0 1 1 3 KT (СУ3) # 3 ц с Ц С
0 1 0 0 4 КП СТП ¤ 4 д т Д Т
0 1 0 1 5 КТМ НЕТ % 5 е у Е У
0 1 1 0 6 ДА СИН & 6 ф ж Ф Ж
0 1 1 1 7 ЗВ КБ ◤ 7 г в Г В
1 0 0 0 8 ВШ АН ( 8 х ь Х Ь
1 0 0 1 9 ГТ КН ) 9 и ы И Ы
1 0 1 0 10 ПС ЗМ * : й з Й З
1 0 1 1 11 ВТ АР2 + ; к ш К Ш
1 1 0 0 12 ПФ РФ , < л э Л Э
1 1 0 1 13 ВК РГ – = м щ М Щ
1 1 1 0 14 ВЫХ РЗ . > н ч Н Ч
1 1 1 1 15 ВХ РЭ / ? о ъ О ЗБ
Рисунок 7 – Кодовая таблица КОИ-7. Русский регистр
1 1
0 1
1 0
1 0
Номера разрядов Буквы
б8 б7 б6 б5 б4 б3 б2 б1 русского
8 7 6 5 4 3 2 1 алфавита
0 0 0 0 А Р
0 0 0 1 Б С
0 0 1 0 В Т
0 0 1 1 Г У
0 1 0 0 Д Ф
0 1 0 1 Е Х
0 1 1 0 Ж Ц
0 1 1 1 З Ч
1 0 0 0 И Ш
1 0 0 1 Й Щ
1 0 1 0 К Ъ
1 0 1 1 Л Ы
1 1 0 0 М Ь
1 1 0 1 Н Э
1 1 1 0 О Ю
1 1 1 1 П Я
Рисунок 8 – Код КОИ-8. Фрагмент русского алфавита
Изучение принципов построения кодеков циклического кода 21

Таблица 1 – Кодовые комбинации первичного кода МТА-2


Номер Кодовая Регистры Номер Кодовая Регистры
комби- комбина- Л Р ЦИФ комби- комби- Л Р ЦИФ
нации ция А У нации нация А У
Т С Т С
1 11000 А А - 17 11101 Q Я 1
2 10011 B Б ? 18 01010 R Р 4
3 01110 C Ц : 19 10100 S С ‘(апф)
4 10010 D Д # 20 00001 T Т 5
5 10000 E Е 3 21 11100 U У 7
6 10110 F Ф Э 22 01111 V Ж =
7 01011 G Г Ш 23 11001 W В 2
8 00101 H Х Щ 24 10111 X Ь /
9 01100 I И 8 25 10101 Y Ы 6
10 11010 J Й Ю 26 10001 Z З +
11 11110 K К (зв) 27 00010 Возврат каретки <
12 01001 L Л ( 28 01000 Перевод строки =
13 00111 M М ) 29 11111 Латинский регистр
14 00110 N Н . (тчк) 30 11011 Цифровой регистр
15 00011 O О , (зпт) 31 00100 Пробел
16 01101 P П 9 32 00000 Русский регистр

Таблица 2 – Образующие полиномы циклического кода


Максимальная степень образующего Вид полинома
полинома Р(х)
1 Х+1
2 Х2+Х+1
3 Х3+Х+1
Х3+Х2+1
4 Х4+Х+1
Х4+Х3+1
Х4+Х3 +Х2 +Х+1
5 Х5+Х3+1
Х5+Х3+Х2 +1
Х5+Х4+Х2 +Х+1
Х5+Х4+Х3 +Х2+1
7 Х7+Х3+1
Х7+Х4+Х3 +1
Х7+Х3+Х2 +Х+1
8 Х8+Х4+Х3 +Х+1
Х8+Х5+Х4 +Х3+1
Х8+Х7+Х5 +Х+1
22 Изучение принципов построения кодеков циклического кода

Продолжение таблицы 2
9 4 2
9 Х +Х +Х +Х+1
Х9+Х5+Х3 +Х2+1
Х9+Х6+Х3 +Х+1
10 Х10 +Х3+1
Х10+Х4+Х3 +Х+1
Х10+Х8+Х3 +Х2+1
11 Х11+Х2+1
Х11+Х7+Х3 +Х2+1
Х11+Х8+Х5 +Х2+1
12 Х12+Х6+Х4 +Х+1
Х12+Х9+Х3 +Х2+1
Х12+Х11+Х6+Х4 +Х2+Х+1
13 Х13 + Х4 +Х3 +1
Х13 + Х10 + Х9 + Х +1
Х13 + Х12 + Х11 + Х2 +1
14 Х14 + Х13 + Х11 + Х9 + 1
Х14 + Х12 + Х10 + Х4 + Х2 + Х + 1
Х14 + Х12 + Х2 + Х + 1
15 Х15 + Х12 + Х3 + Х + 1
Х15 + Х13 + Х5 + Х + 1
Х15 + Х14 + Х13 + Х10 + Х2 + Х + 1
16 Х16 + Х15 + Х7 + Х2 + 1
Х16 + Х14 + Х12 + Х3 + Х2 + Х + 1
Х16 + Х12 + Х5 + Х + 1

Лабораторная работа № 7
Исследование построения кодеков циклического кода
с помощью программного эмулятора
Цель работы
Целью лабораторной работы является проверка теоретических
положений синтеза информационных кадров циклического кода. Научиться по
исходным данным с помощью программного эмулятора циклического кода,
проводить расчет оптимальных параметров применяемого циклического кода
с использованием формулы относительной скорости передачи информации в
дискретном канале. По рассчитанным оптимальным параметрам циклического
кода уметь строить структурные схемы кодеков циклического кода.
Описание программного эмулятора циклического кода
Параметры циклического (n, k) кода будем рассчитывать по
относительной пропускной способности дискретного канала связи R по
программе, разработанной на кафедре документальной электросвязи ОНАС
им. А.С. Попова. Будем исходить из формулы расчета относительной
Изучение принципов построения кодеков циклического кода 23

пропускной способности, получаемой из допущений и преобразований,


приведенных выше [2].
Для расчета циклического кода системы передачи данных в качестве
исходных параметров будут использованы следующие величины:
• скорость модуляции источника сообщений В, Бод;
• вероятность ошибки в дискретном канале Pош;
• длина магистрали для передачи данных L, км;
• минимальное кодовое расстояние для рассчитываемого циклического
кода d0;
• коэффициент группирования ошибок в дискретном канале α;
• вероятность необнаруженной ошибки в системе передачи данных
Pнеобн.ош;
• скорость распространения сигнала в прямом и обратном дискретных
каналах связи составляет 280 000 км/c.
Для расчета оптимальных параметров циклического кода системы
передачи данных необходимо ввести исходные данные, которые представлены
в табл. 3 согласно номерам бригад студенческой группы индивидуально для
каждого члена бригады. Кроме этого, необходимо ввести скорость
распространения сигнала в дискретном канале связи V = 280 000 км/c. Данные
для Рош, Рнеобн.ош, и α вводятся в рабочие окна программного эмулятора в
десятичном виде через запятую, иначе программа выдаст сообщение об
ошибочно введенных данных. Расчет по программе на ЭВМ производится по
исходным данным, и кодек циклического кода строится согласно структурным
схемам, приведенным ранее на рис. 4 (структурная схема кодера) и 5
(структурная схема декодера).
Таблица 3 – Исходные данные для расчета параметров циклического кода
Исходные Номер студенческой бригады
данные 1 2 3 4 5 6 7 8
Скорость модуляции
В, Бод 9 600 64 000 14 400 28 800 33 600 31 000 12 200 9 600
Для каждого члена 5·10-3 5·10-3 2·10-3 7·10-3 5·10-3 2·10-3 5·10-3 5·10-3
бригады. 3·10-3 3·10-3 3·10-3 3·10-3 3·10-3 3·10-3 3·10-3 8·10-3
Вероятность ошибки 4·10-4 6·10-4 4·10-4 8·10-4 4·10-4 7·10-4 4·10-4 4·10-4
Рош 2·10-4 2·10-4 5·10-4 2·10-4 6·10-4 4·10-4 2·10-4 6·10-4
Вероятность
необнаруженной
ошибки, Рнеоб.ош 10-6 2·10-6 3·10-6 2·10-6 3·10-6 4·10-6 5·10-6 6·10-6
Для каждого члена 480 480 480 480 480 480 480 480
бригады. 875 875 875 875 875 875 875 875
Длина магистрали 1 200 1 200 1 200 1 200 1 200 1 200 1 200 1 200
L, км 2 500 2 500 2 500 2 500 2 500 2 500 2 500 2 500
5 600 5 600 5 600 5 600 5 600 5 600 5 600 5 600
24 Изучение принципов построения кодеков циклического кода

Продолжение таблицы 3
Для каждого члена 3 3 3 3 3 3 3 3
бригады. 4 4 4 4 4 4 4 4
Минимальное 5 5 5 5 5 5 5 5
кодовое расстояние 3 3 3 3 3 3 3 3
d0 6 6 6 6 6 6 6 6
Для каждого члена 0,35 0,35 0,35 0,35 0,35 0,35 0,35 0,35
бригады. 0,44 0,44 0,44 0,44 0,44 0,44 0,44 0,44
Коэффициент 0,52 0,52 0,52 0,52 0,52 0,52 0,52 0,52
группирова-ния 0,64 0,64 0,64 0,64 0,64 0,64 0,64 0,64
ошибок α 0,72 0,72 0,72 0,72 0,72 0,72 0,72 0,72
Для проведения расчетов в меню компьютера найти папку “Адаптивные
системы” и ”Ros Kanal”. Открыть файл “Цикл. Код”. Появится рабочий
интерфейс программного эмулятора с активными рабочими окнами для ввода
исходных данных. Данный интерфейс приведен на рис. 9.
В результате расчета на компьютере выдаются оптимальные параметры
циклического кода: n, k, r и образующий полином P(x). По образующему
полиному строятся на компьютере устройства получения остатка для кодера Д1
и для декодера Д2. Как пример, проведен расчет для трех различных
вероятностей ошибки Рош в дискретном канале. Результаты моделирования
приведены в табл. 4.

Рисунок 9 – Рабочие окна интерфейса для ввода исходных данных


На рис. 10…12 представлены структурные схемы устройств получения
остатка кодеков циклического кода, которые строит программный эмулятор в
соответствии с исходными данными. Три исходных вероятности ошибки в
дискретном канале определяют квазистационарность канала связи во времени.
Из рассчитанных параметров циклического кода для заданных
параметров следует выбрать третий вариант. В этом случае имеются наихудшие
условия для передачи данных по вероятности ошибки в дискретном канале
связи. Система передачи данных, обеспечивающая необходимое качество
Изучение принципов построения кодеков циклического кода 25

передачи данных по вероятностным характеристикам (Рош, Рнеобн.ош и


коэффициенту группирования ошибок α) при наихудших условиях
функционирования, будет обеспечивать качественную передачу информации и
в лучших условиях состояния дискретного канала связи.
Таблица 4 – Результаты расчета параметров циклического кода
n 31 63 127 255 511 1023 2047 4095 8191 16383
R 0,788 0,888 0,94 0,968 0,982 0,989 0,993 0,994 0,9994 0,9993
Образующий полином Р(х) Р(х) = x10 + x9 + x3 + x2 + 1
Параметры оптимального циклического кода n = 8191, k = 8181, r = 10
n 31 63 127 255 511 1023 2047 4095 8191
R 0,639 0,799 0,885 0,929 0,952 0,961 0,963 0,960 0,954
Образующий полином Р(х) Р(х) = x12 + x9 + x3 + x2 + 1
Параметры оптимального циклического n = 2047, k = 2035, r = 12
кода
n 31 63 127 255 511 1023 2047 4095
R 0,182 0,412 0,575 0,669 0,712 0,7124 0,681 0,659
Образующий полином Р(х) Р(х) = x15 + x10 + x5 + x +
Параметры оптимального циклического n = 1023,
кода k = 1008, r = 15
ЭК1
ВХОД
Х9 Х8 Х7 Х6 Х5 Х4

ВЫХОД
Х3 Х2 Х1 Х0

а)

Х9 Х8 Х7 Х6 Х5 Х4

Х3 Х2 Х1 Х0

ВХОД
1
К решающему
устройству
б) (или ДСО)

Рисунок 10 – Структурная схема устройства получения


остатка кодека циклического кода по первому расчету:
а – для кодера; б – для декодера
26 Изучение принципов построения кодеков циклического кода

ЭК1

ВХОД

Х11 Х10 Х9 Х8 Х7 Х6

ВЫХОД Х5 Х4 Х3 Х2 Х1 Х0

а)

Х11 Х10 Х9 Х8 Х7 Х6

Х5 Х4 Х3 Х2 Х1 Х0

ВХОД
1

К решающему
устройству
(или ДСО)
б)

Рисунок 11 – Структурная схема устройства получения


остатка кодека циклического кода по второму варианту расчета:
а – для кодера; б – для декодера
Изучение принципов построения кодеков циклического кода 27
ЭК1

ВХОД

Х14 Х13 Х12 Х8 Х10 Х9

Х8 Х7 Х6 Х5 Х4 Х3

ВЫХОД

Х2 Х1 Х0

а)

Х14 Х13 Х12 Х11 Х10 Х9

Х8 Х7 Х6 Х5 Х4 Х3
1

1 Х2 Х1 Х0

К решающему
устройству ВХОД
(или ДСО) б)

Рисунок 12 – Структурная схема устройства получения остатка


кодека по третьему варианту расчета: а – для кодера; б – для декодера
28 Изучение принципов построения кодеков циклического кода

Для проведения расчетов параметров циклического кода необходимо


проделать следующее.
1 В рабочие окна программы ввести исходные данные согласно своему
варианту по табл. 3.
2 После ввода исходных данных нажать мышкой клавишу “Выбрать
полином”. В окне “Параметры кода” появятся рассчитанные данные блока
циклического (n, k) кода, к примеру (511, 497). В окне “Полиномы” появится
список образующих полиномов для данного кода и над рабочими окнами
рассчитанный график с таблицей результатов расчета зависимости
относительной пропускной способности дискретного канала от значности блока
циклического кода. Это отображает рис. 13.

Рисунок 13 – Рабочие окна “Полином” и “Параметры кода”


для расчета параметров циклического кода

Отдельно график зависимости относительной пропускной способности


от длины блока циклического кода представлен на рис. 14.
3 Из списка полиномов выбрать образующий полином и ввести в верхнее
окно “Полином” степени образующего полинома, например в виде 14 + 8 + 6 +
+ 1 + 0.
Изучение принципов построения кодеков циклического кода 29

0 31 63 127 255 511 n


1023
Рисунок 14 – График зависимости относительной пропускной способности
дискретного канала от длины кодовой комбинации циклического кода

4 Нажать мышкой клавишу “Построить кодер”. На дисплее появляются


расчетные параметры и упрощенная структурная схема кодера циклического
кода с устройством получения остатка (устройство формирования проверочных
разрядов для информационного блока). Отсчет номеров ячеек устройства
получения остатка ведется от последней ячейки регистра сдвига, который
реализуется на обычных Д-триггерах “Т”. Это отображено на рис. 15, который
приведен ниже.
Выход из расчетных данных производится нажатием на клавиатуре
компьютера на клавишу “Esc”.
5 Включить мышкой клавишу “Построить декодер”. Как и в
предыдущем пункте, на экране дисплея появится упрощенная структурная
схема декодера циклического кода с устройством получения остатка (проверка
на правильность принятой кодовой комбинации циклического кода), что
отображено на рис. 16. Упрощенная структурная схема декодера циклического
кода приведена для работы в режиме обнаружения ошибок.
6 Для проверки правильности функционирования программного
эмулятора циклического кода необходимо воспользоваться рабочими окнами
“Проверка КК” (рис. 17). В этом случае необходимо в рабочее окно
“Исходная кодовая комбинация” ввести в символьном виде смысловое
сообщение из 25…40 символов. Ниже в рабочем окне отобразится данное
сообщение в двоичном виде, которое будет кодироваться первичным кодом,
заложенным в компьютере. Включить мышкой клавишу “Закодировать” – и в
правом рабочем окне “Закодированная кодовая комбинация” появится блок
циклического кода, последние r разрядов которого будут соответствовать
30 Изучение принципов построения кодеков циклического кода

проверочным элементам блока циклического кода. Данные проверочные


элементы получаем в соответствии с заложенными нами исходными данными и
выбранным образующим полиномом Р(х).

Рисунок 15 – Упрощенная структурная схема кодера циклического кода


с устройством получения проверочных разрядов
по выбранному образующему полиному Р(х)

Для проверки правильности полученного блока циклического кода


необходимо включить клавишу “Проверить” (см. рис. 17). В этом случае при
условии правильности функционирования программного эмулятора над
нижним левым рабочим окном появится надпись “в КК ошибок НЕТ”, а ниже
высветится нулевой остаток от деления на образующий полином Р(х) в
декодере циклического кода.
7 Для проверки правильности функционирования программного
эмулятора необходимо в рабочем окне “Закодированная кодовая
комбинация” внести произвольно одно-, двух-, трех- или четырехкратные
ошибки в двоичные элементы в блок циклического кода путем замены
двоичных элементов на противоположные биты (“1”– на “0”, “0”– на “1”) с
клавиатуры компьютера. Затем нажать мышкой клавишу “Проверить”. Над
нижним левым рабочим окном появится надпись “ЕСТЬ ОШИБКИ!”, а в
самом рабочем окне появится в двоичном виде вектор ошибки. Данные
процедуры отображены на рис. 18.
Изучение принципов построения кодеков циклического кода 31

НАКОПИТЕЛЬ ПРИЕМА (НП)

На входы элемента ИЛИ

На входы элемента ИЛИ

На входы элемента ИЛИ


Рисунок 16 – Упрощенная структурная схема декодера циклического кода
с устройством получения остатка для обнаружения ошибок
по выбранному для построения образующему полиному Р(х)

Рисунок 17 – Рабочие окна для проверки правильности работы


программного эмулятора циклического кода
32 Изучение принципов построения кодеков циклического кода

Рисунок 18 – Рабочие окна для проверки кодовой комбинации


циклического кода с расчетными параметрами, принятой с ошибками
Задание на лабораторную работу
1 По приведенному выше описанию принципов построения кодеков
циклического кода и описанию программного эмулятора изучить методику
синтеза информационного блока, защищенного циклическим кодом.
2 Ввести исходные данные согласно своему варианту из табл. 3.
3 Произвести расчет параметров информационного блока циклического
кода:
• построить график относительной пропускной способности
дискретного канала по расчетным табличным данным;
• выписать рассчитанные параметры циклического кода;
• выбрать и записать образующий полином для рассчитанных
параметров циклического кода.
4 Построить и зарисовать в отчете упрощенную структурную схему
кодера циклического кода.
5 Построить и зарисовать упрощенную структурную схему декодера.
Определить емкость буферного накопителя.
6 Произвести проверку на правильность синтезируемого блока
циклического кода согласно приведенному выше описанию программного
эмулятора.
7 Произвести проверку блока циклического кода при внесении одно- и
многократных ошибок в блок циклического кода согласно приведенному выше
описанию.
8 Обнулить исходные данные. В верхнем окне “Полином” ввести
степени образующего полинома, который использовался на практическом
занятии. В рабочие окна “Параметры кода”с помощью клавиатуры ввести
параметры синтезированного на практическом занятии циклического (n, k)
кода. По этим данным построить кодек циклического кода с помощью
программного эмулятора по приведенному описанию лабораторной работы. По
пунктам 6 и 7 произвести проверку кодовой комбинации циклического (n, k)
кода, полученного на практическом занятии.
9 Составить отчет и подготовить ответы на контрольные вопросы.
Изучение принципов построения кодеков циклического кода 33

Содержание протокола
Протокол должен содержать исходные данные для синтеза
информационного блока, защищенного циклическим кодом, и результаты
расчетов по пп. 3…9 для лабораторного занятия. Сделать краткие выводы по
проделанной лабораторной работе. Подготовить ответы на контрольные
вопросы.
Контрольные вопросы
1 Свойства образующего полинома циклического кода. Чем определяется
количество ячеек памяти в устройстве получения остатка в кодеке
циклического кода?
2 Чем определяется количество сумматоров по модулю 2 в устройстве
получения остатка в кодеке циклического кода? Правила установки сумматоров
по модулю 2.
3 Как связано число проверочных разрядов с параметрами циклического
кода?
4 В каких режимах может использоваться циклический код? Какую
операцию выполняет декодер по обнаружению ошибки в принятой кодовой
комбинации циклического кода?
5 Что называется минимальным кодовым расстоянием и какова его связь
с кратностью обнаруживаемых и исправляемых ошибок?
6 Чем обусловлено наличие буферного накопителя в декодере и какова
его емкость?
7 Как определяется относительная пропускная способность дискретного
канала? От чего зависит относительная пропускная способность и имеет ли она
оптимум?
8 Пояснить принцип работы кодера циклического кода.
9 Пояснить принцип работы декодера циклического кода.
10 Каким образом производится исправление ошибок в кодере
циклического кода?
11 Каким соотношением связаны скорости модуляции на входе и на
выходе кодера и декодера циклического кода? Необходимость применения
блока преобразователя скорости модуляции в кодеке циклического кода.
12 Что такое коэффициент ошибок и как он с вязан с вероятностью
ошибок? В каких пределах находится вероятность ошибки дискретного канала
при передаче по нему различных видов дискретных сообщений?
13 Что такое вероятность необнаруженной ошибки декодера?
14 Что такое пакетирование ошибок? В каких пределах находится
коэффициент пакетирования? Что такое защитный интервал при пакетах
ошибок?
15 Какими параметрами характеризуется циклический код?
16 Какими параметрами характеризуется дискретный канал связи?
17 Что называется избыточностью циклического кода?
34 Изучение принципов построения кодеков циклического кода

Список рекомендуемых источников

1 Шварцман В.О., Емельянов Г.А. Теория передачи дискретной


информации: Учебник для вузов связи. – М.: Связь, 1979.
2 Емельянов Г.А., Шварцман В.О. Передача дискретной информации. –
М.: Радио и связь, 1982.
3 Передача дискретных сообщений: Учебник для высших учебных
заведений / В.П. Шувалов, Н.В. Захарченко, В.О. Шварцман и др.; Под ред.
В.П. Шувалова. – М.: Радио и связь, 1990. – 464 с.
4 Системы передачи документальной электросвязи: Учеб. пособие /
Н.В. Захарченко, Б.С. Владишевский, И.А. Киреев и др.; Под общ. ред. Н.В.
Захарченко. – Одесса: УГАС им А.С. Попова, 2000. –327 с.
5 Захарченко Н.В., Крысько А.С., Захарченко В.Н. Основы
кодирования: Учебное пособие. – Одесса: УГАС им. А.С. Попова, 1999. – 240 с.
6 Адаптивные системы передачи данных с переспросом: Учеб. пособие /
.Н.В. Захарченко, А.А. Вараксин, В.Н. Сницар, Г.Г. Филатов; Под ред. Н.В.
Захарченко. – Одесса: изд. ОНАС им. А.С. Попова, 2002. –186 с.
Изучение принципов построения кодеков циклического кода 35

СОДЕРЖАНИЕ

ПОСТРОЕНИЕ КОДОВЫХ КОМБИНАЦИЙ И КОДЕКОВ


ЦИКЛИЧЕСКОГО КОДА
Основные принципы построения циклических кодов 3
Основные принципы построения кодеков циклических кодов. 10
Практическое занятие
Синтез кодовых комбинаций циклического кода 17
Лабораторная работа № 7
Исследование построения кодеков циклического кода с помощью
программного эмулятора 24
Список рекомендуемых источников 36
36 Изучение принципов построения кодеков циклического кода

Учебное издание

ЗАХАРЧЕНКО Николай Васильевич


ВАРАКСИН Александр Александрович
ФИЛАТОВ Георгий Геннадьевич

ИЗУЧЕНИЕ ПРИНЦИПОВ ПОСТРОЕНИЯ


КОДЕКОВ ЦИКЛИЧЕСКОГО КОДА

Методическое пособие

Компьютерная верстка
и макетирование Корнейчук Е.С.

Редактор Ращупкина И.В.

Вам также может понравиться