
125 Кібербезпека / 4 Курс / 4.2_Управління інформаційною безпекою / Лiтература / V_P_Babak_A_A_Kliuchnykov-Teoreticheskye_osnovy_zashchity_informat
...pdf
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
Проверочный полином. Полином, который можно ассоциировать с проверочной матрицей циклического кода, называется проверочным полиномом. Порождающие и проверочные полиномы связаны соотношением
g(x)h(x) xn 1. |
|
(7.57) |
|
Если известен порождающий полином, то проверочный полином легко |
|||
вычисляется как h(x) (xn 1) / g(x) h |
h x ... h xk . |
Проверочную мат- |
|
0 |
1 |
k |
|
рицу кода С легко построить, воспользовавшись как строками n k 1 циклическими сдвигами проверочного полинома:
h j (x) x j h(x) mod (xn 1), |
j 0, 1, |
,..., n k 1, |
|
||||||
h |
h |
h |
h |
0 |
0 |
0 |
|
|
|
|
0 |
1 |
2 |
k |
|
|
|
|
|
|
0 |
h1 |
h1 |
h2 |
hk |
0 |
0 |
|
|
H 0 |
0 |
h |
h |
|
h |
0 |
. |
(7.58) |
|
|
|
|
0 |
1 |
|
k |
|
|
|
0 |
0 |
0 |
0 |
|
|
|
|
||
|
|
|
|
|
|
||||
|
0 |
0 |
0 |
0 0 |
|
|
|
|
|
|
|
|
hk |
|
Пример 7.25. Циклический код Хэмминга с порождающим многочленом
g(x) x3 x 1 |
имеет проверочный многочлен |
h(x) (x7 |
1) / (x3 x 1) |
|||||||
x4 x2 x 1. |
Проверочная матрица этого кода имеет, |
например, такой |
||||||||
вид: |
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
|
|
|
|
0 1 |
1 |
1 |
0 1 |
0 |
|
|
||
|
H |
. |
|
|||||||
|
|
0 |
0 |
1 |
1 |
1 |
0 |
1 |
|
|
|
|
|
|
Равно как и для линейных кодов, систематическое кодирование циклического кода можно реализовать как решение уравнения
v(x)h(x) 0mod(xn 1).
Рассмотрим правило систематического кодирования. Предположим, что код имеет скорость k / n 0,5. Пусть сообщение представлено многочленом, степень которого меньше k. Пусть v(x) - кодовое слово кода С, который отвечает информационному многочлену u(x). На первом шаге
vl ul , l 0, 1,..., k 1.
Из циклической природы этого кода вытекает, что проверочные символы кода можно вычислить рекурсивно с помощью проверочного уравнения,
где h(l k ), j |
- j-й элемент (l k)-ãî строки матрицы (7.48): |
|
|
|
l 1 |
|
|
|
vl vj h(l k ), j |
, l k, k 1,..., n 1. |
(7.59) |
|
j 0 |
|
|
550

Глава 7. Кодирование информации
В случае высокой скорости кода k / n 0,5 кодирование с помощью деления xn k u(x) на порождающий полином эффективнее. При этом всегда
кодовое слово получают в систематической форме, когда k первых его символов совпадают с символами сообщения, а последние n k являются проверочными символами.
Структурная схема кодера двоичного кода с порождающим полиномом g(x)
изображена на рис. 7.29. Первые k тактов переключатель (правая нижняя часть схемы) находится в положении 1, а информационные символы переда-
ются в канал связи и одновременно вводятся в схему умножения на xn k и деления на порождающий многочлен g(x). За эти k тактов в регистре сдвига
вычисляется остаток от деления, после чего переключатель переводится в положение 2 и содержимое регистра передается в канал.
g 0 |
g1 |
gn k |
|
|
D триггеры |
|
XOR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|||
|
|
|
b(x) [ x n k u(x)] mod g (x) |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
u0u1,uk 1 vn k ,vn k 1,....,vn 1 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k n k
Рис. 7.29. Устройство систематического кодирования делением на g( x)
Дуальные циклические коды и последовательности максимальной длины. Дуальным кодом циклического кода С, который порождается поли-
номом g(x), является циклический код C , порождаемый полиномом h(x).
Важный класс представляют циклические коды, словами которых являются все сдвиги последовательности максимальной длины (MLS) и которые являются дуальными циклическому коду Хэмминга. Множество сдвигов яв-
ляется (2m 1, m, 2m 1 ) циклическим кодом, который порождается полиномом g(x) (xn 1) / p(x), где p(x) - первоначальный полином. В дальнейшем этот
код будем называть MLS кодом.
Сокращенные циклические коды и СRC коды. Существует много практических заданий, в которых приходится использовать коды, которые исправляют ошибки согласно простым процедурам кодирования и декодиро-
551

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
вания. Тем не менее, существующие конструкции не всегда имеют нужную длину, размерность и минимальное расстояние.
Сокращение сводится к отбрасыванию информационных позиций начального кода. Пусть S - количество неупотребляемых информационных символов, которые называют глубиной (длинной) сокращения. Пусть С - циклический (n, k, d ) код. Сокращение сообщения образовывается за счет фик-
сированного установления нулевых значений в некоторых (произвольных) информационных позициях. Другие позиции могут приобретать произвольные значения. Без потери для всеобщности соображений можем считать, что старшие позиции сообщения устанавливаются в нулевые состояния. Тогда
u(x) u |
u x ... u |
xk 1 s . |
Данное сообщение превращается система- |
||
0 |
1 |
k 1 s |
|
|
|
тическим кодером в кодовое слово |
|
||||
|
|
v(x) xn k u(x) xn k u(x)mod g(x) , |
|||
|
|
|
|
|
|
степень которого не превышает |
n s 1. |
Таким образом, сокращенный код |
Cs является линейным (n s, k s, ds ) кодом с кодовым расстоянием ds d.
В общем случае сокращенный код не остается циклическим кодом.
Пример 7.26. Пусть С - циклический код Хэмминга с порождающим по-
линомом 1 x x3. Новый код, образованный из С установлением в нулевое состояние двух старших информационных разрядов, имеет два информационных символа и три проверочных, вычисленные кодером кода С. Множество полученных кодовых слов представляет собой сокращенный линейный код.
Фундаментальное свойство сокращенных циклических кодов CS заклю-
чается в том, что могут использоваться те же кодеры и декодеры, хотя эти коды и не сохраняют стойкость к циклическому сдвигу. Для компьютерного моделирования намного проще дополнять слова нулями на старших позициях и использовать те же алгоритмы кодирования и декодирования, которые здесь обсуждаются. Этот способ (дополнение нулями) широко используется в микросхемной реализации РС-кодов. Очевидно, что нули на старших позициях сообщения не должны включаться в кодовое слово. Более того, декодер модифицируется так, что выполняется умножение принятого слова r(x) на
xn k s вместо умножения на xn k по модулю g(x) в обычном декодере.
Еще одним возможным решениям может быть попытка построить другие классы циклических кодов с необходимыми параметрами. Интересными классами таких кодов являются непервоначальные коды БЧХ, евклидогеометрические (EG) и проективно-геометрические (PG) коды. Еще одна возможность заключается в применении недвоичных циклических кодов в двоичном представлении, таких как РС-коды, которые рассматривались раньше. Двоичное отображение РС-кодов имеет дополнительную способность исправлять многократные пакеты ошибок.
552

Глава 7. Кодирование информации
СRC коды. Один из наиболее популярных стандартов помехоустойчивого кодирования обосновывается на избыточных циклических кодах для обнаружения ошибок (СRC коды). Эти циклические коды используются для
обнаружения ошибок в блоках данных. СRC коды имеют длину n 2m 1. Обычно СRC коды имеют порождающий полином вида (1 x)g(x), где g(x)
- порождающий полином кода Хэмминга. Обычно значения т равняются 12, 16 и 32. Выбор порождающего полинома зависит от допустимой вероятности неопределенной ошибки, которая определяется распределением (спектром) весов кода. Вычисление вероятности неопределенной ошибки эквивалентно определению спектра веса кода. Эта задача остается чрезвычайно трудной.
Код |
|
m |
|
|
|
|
g(x) |
|
|
|
|
|
CRC-12 |
12 |
|
x12 x11 x3 x2 x 1 |
|
||||||||
CRC-16 |
16 |
16 |
15 |
x |
2 |
16 |
15 |
x |
5 |
1 |
||
CRC-CCITT |
16 |
x |
x |
|
1 x |
x |
|
|||||
x32 x26 x23 x22 x16 |
x12 |
x11 x10 |
||||||||||
CRC-32 |
32 |
|||||||||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
x8 x7 x5 x4 x2 x 1 |
|||||||||
Общий |
алгоритм |
декодирования циклических кодов. |
Пусть r(x) |
|||||||||
v(x) e(x), |
где e(x) - полином ошибок, |
который ассоциируется с вектором |
ошибок двоичного симметричного канала. Тогда синдром (синдромный полином) имеет вид
s(x) r(x)mod g(x) e(x)mod g(x). |
(7.60) |
Обобщенную структуру декодера циклического кода иллюстрирует рис. |
|
7.30. Синдром s(x) используется для определения полинома ошибок |
e(x) . |
Поскольку циклический код является прежде всего линейным кодом, то эта структура может рассматриваться как вариант «стандартной таблицы» для циклических кодов.
r (x) v(x) e(x) |
|
~ |
|
|
|
n- разрядный регистр |
v (x) |
|
|
|
|
|
|
e(x) |
Деление на g(x) |
s(x) |
|
Обнаружение ошибки e(x) |
|
s(x) r (x) mod g(x)
Рис. 7.30. Обобщенная структура декодера циклического кода
553

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
Проблема декодирования равноценна поиску (неизвестного) полинома ошибок e(x) по известному синдрому s(x). Эти полиномы связаны уравне-
ниям, которое представляет основу синдромного декодера, известного также как декодер Меггита для циклического кода. Другой (но близкий) вариант декодера, который реализует алгоритм обнаружения ошибок, известный также как декодер Касами, проверяет совпадение синдрома с возможным вектором ошибок. Только очень немного классов кодов имеют такое сравнительно простое декодирование, как циклические коды Хэмминга и Голея.
Однако с |
увеличением корректирующей способности кода |
t [(dmin 1) / 2] |
сложность декодера, который базируется на комбинаторном |
определении ошибок, становится чрезвычайно большой. Предположим, что ошибка, возникшая на первой принятой позиции, e(x) xn 1. Соответствующий синдром s(x) xn 1 mod g(x). Если ошибка, которая искажает заданную
позицию, оказывается данным циклическим кодом, то можно выявить ошибки и на других позициях за счет циклических сдвигов и соответствующей коррекции синдрома. Синдромный декодер проверяет синдром для каждой
позиции принятого слова, и если оказывается полином xn 1 mod g(x), то символ на этой позиции исправляется.
Пример 7.27. В этом примере рассматривается декодирование циклического кода Хэмминга с порождающим многочленом g(x) x3 x 1. Симво-
лы, которые принимаются, нагромождаются в регистре сдвига и одновременно вводятся в схему деления на g(x). После приема седьмого бита содержи-
мое этого регистра сдвигает на один разряд в каждом такте, а схема деления модифицирует синдром и проверяет совпадение с полиномом
x6 mod(1 x x3 1 x2 101) (в двоичной записи).
Едва лишь на выходе схемы проверки появится 1, будет исправлено
ошибку в позиции x6 . В тот самый момент исправления вводится за обратной связью в схему деления, обнуляя тем самым остаток от деления. Нулевой остаток может рассматриваться как сигнал об успешном завершении декодирование. Проверка на нулевой остаток схемы деления дает возможность обнаруживать некоторые аномалии после окончания процедуры декодирования.
7.4. Сверточное помехоустойчивое кодирование
Структурная схема информационно-коммуникационной системы передачи данных с использованием помехоустойчивого сверточного кодирования/декодирования приведена на рис. 7.31. Информационное сообщение на выходе кодера источника информации обозначается последовательностью
554

|
|
|
|
|
Глава 7. Кодирование информации |
||||
m m1, m2 ,..., mi ,... , где mi |
- двоичный знак (бит), а и - индекс времени (см. |
||||||||
разд. 7.1). |
|
|
|
|
|
|
|
|
|
Источник |
|
Кодирование |
|
|
Кодирование канала связи |
|
|
(si (t)) |
|
|
|
|
|
|
|
|
|
||
информации |
|
источника |
|
|
|
Модулятор |
|
|
|
|
|
|
(сверточное кодирование) |
|
|
|
|||
|
|
|
|||||||
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
||
|
|
информации |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m m1, m2 ,..., mi ,... или a a1, a2 ....ai
Входящая
последовательность
Получатель
информации
' ' ' '
m m1, m2 ,..., mj ,... или a a1, a2 ....a j
Декодер
источника
информации
U G(m) U1 ,U 2 ,...,Ui,...
Последовательность кодовых слов, где |
|
|
|
||||
Ui |
u1it ,...,u jt ,...,unt |
|
Канал связи с |
||||
|
|
|
|
|
|
помехами |
|
Декодер канала связи |
|
|
|
|
|||
|
|
|
|
||||
(сверточное |
|
|
Демодулятор |
|
|
|
|
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
декодирование) |
|
|
|
|
|
(si (t)) |
|
z z1 , z2 ,..., zn ..., |
|
|
|
|
|||
Где |
Zi z1i ,..., z ji ,...znt |
z j |
|
|
|
Это j-й символ кодового слова на выходе демодулятора
Рис. 7.31. Кодирование/декодирование и модуляция/демодуляция в каналах связи
Если быть точным, то элементы т следовало бы дополнять индексом, который соответствует типу кодирования источника согласно определенной раньше классификации и индексу времени. Однако для упрощения будет использоваться только индекс, который обозначает время (или размещение элемента внутри последовательности). Допустим, что все mi равновероят-
ные, и равняются единице или нулю и независимы между собой. Будучи независимой, последовательность бит имеет потребность в некоторой избыточности, т.е. знание о бите mi не даст ни одной информации о бите тj (при
i j). Кодер превратит каждую последовательность т в уникальную последовательность кодовых слов U G(m). И хотя последовательность т однозначно определяет последовательность U , ключевой особенностью сверточных кодов является то, что данный k-кортеж внутри т неоднозначно определяет связанные с ним п-кортежи внутри U , поскольку кодирование каждого из k-кортежей является функцией не только k-кортежей, а и предыдущих k 1 k-кортежей (кодирование с памятью). Последовательность U можно поделить на последовательность кодовых слов:
U U1, U2 , ..., Ui ,...
555

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
Каждое кодовое слово Ui состоит из двоичных кодовых символов, кото-
рые часто называют канальными символами, или битами кода, а соответствующую процедуру кодирования - канальным помехоустойчивым кодированием.
Сверточные (рекурентные, цепи) коды используются для кодирования непрерывной последовательности двоичных символов путем введения в эту последовательность специальных проверочных (избыточных) символов с целью обнаружения и исправление искажений в информационных сообщениях.
Например, для каждого информационного символа исходной последовательности А(aі ), которые различаются между собой на шаг кодирования (до-
бавление, перемежевание) , формируется один специальный проверочный символ П.
Передаются проверочные символы с определенной задержкой относительно информационных. На стороне приемника из информационных символов a формируются новые проверочные, которые в отличие от проверочных символов П , называются контрольными. Контрольные символы сравниваются с проверочными, и в случае их расхождения формируется вывод о наличии искажения. Проверочные и контрольные символы формируются добавлением по модулю 2 информационных символов.
Передача |
|
Прием |
|
|||
a a |
П |
i,i |
a a |
K |
i,i |
|
i i |
|
i |
i |
|
a |
1 |
a |
П |
i,i 1 |
a |
a |
|
K |
i,i 1 |
|||
i |
i 1 |
|
|
i |
1 |
i 1 |
|
|
||||
|
|
… |
|
|
|
|
… |
|
|
|
||
a |
|
a |
П |
i ,i 2 |
a |
|
a |
K |
i ,i 2 |
|||
i |
i 2 |
|
i |
i 2 |
|
|
||||||
a |
a |
П |
i 1,i 2 1 |
a |
a |
K |
i 1,i 2 1 |
|||||
i 1 |
|
i 2 1 |
|
i 1 |
|
i 2 1 |
|
|
и т.д.
Одна проверка охватывает те информационные символы, разность номеров которых равняется шагу кодирования:
i i i 1 (i 1) i 2 1 (i ) ... .
Каждый контрольный символ сравнивается с соответствующим прове-
рочным: |
|
|
|
|
|
|
|
S |
|
K |
i,i |
Ï |
; |
|
|
i,i |
|
|
i,i |
|
|
||
S |
K |
i 1,i |
Ï |
1 |
и т.д. |
||
i 1,i 1 |
|
|
i 1,i |
|
Признаком отсутствия искажений есть то, что все суммы равняются ну-
лю:
Si,i Si 1,i 1 ... 0.
556

Глава 7. Кодирование информации
Искаженным может быть как информационный, так и проверочный сим-
вол.
На искажение одного проверочного символа указывает то, что одна из сумм равняется единице. Например, при искажении Пi,i получаем Si,i 1,
поскольку Ki,i не совпадает с Пi,i . Если дальнейшей передачи этой по-
следовательности не происходит (ретрансляция отсутствующая), то и исправлений нет.
Наличие двух сумм, которые равны единице и отдалены (сдвинуты) между собой на шаг добавления , свидетельствует об искажении двух проверочных символов.
Пример 7.28. Рассмотрим последовательный сверточный код с шагом кодирования 3 при условии, что проверочные символы приняты без искажений. Пусть с искажением приняты три информационных символа. Формирование проверочных и контрольных символов иллюстрирует рис. 7.32
Передача
a1 П0,3 |
a2 П1,4 |
a3 |
П2,5 |
a4 П3,6 |
a5 |
П4,7 |
a6 |
П5,8 a7 |
П6,9 a8 |
П7,10 a9 |
П8,11a10 П9,12 |
a11 П10,13 a12П11,14 |
a13 |
|||||||||||||||
1 |
1 |
|
1 |
1 |
|
1 |
|
1 |
|
|
|
1 |
|
1 |
|
|
1 |
1 |
|
|
1 |
|
1 |
|
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
0 |
|
0 |
|
0 |
|
|
0 |
0 |
0 |
|
0 |
0 |
|
0 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Прием |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Искривление |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
a/1 K0,2 |
a/2 К1,4 |
a/3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
К2,5 |
a/4 |
К3,6 |
a/5 |
К4,7 |
a/6 |
|
К5,8 a/7 |
К6,9 a/8 |
К7,10 a/9 |
К8,11a/10 К9,12 |
a/11 |
К10,13 a/12 К11,14 a/13 |
||||||||||||||||
1 |
1 |
|
1 |
|
0 |
|
|
0 |
|
|
|
0 |
|
1 |
|
1 |
|
1 |
|
|
1 |
|
1 |
1 |
|
1 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
1 |
|
1 |
|
1 |
|
|
1 |
|
|
|
1 |
1 |
|
0 |
0 |
0 |
|
0 |
|
|
Рис. 7.32. Формирование проверочных и контрольных символов при наличии искажения в символах с номерами 4, 5, 6
Все проверочные символы, сформированные для условий примера, равны нулю, а что касается контрольных, то среди них все символы, сформированные с привлечением искаженных информационных, равняются единице, а остальные, как и проверочные, равны нулю.
Нетрудно увидеть, что сравнение контрольных элементов, которые при приеме сформированы с привлечением неискаженных информационных символов, с соответствующими проверочными дает значение, равное нулю. А сравнив контрольные элементы, которые при приеме сформированы с привлечением искаженных информационных символов, с соответствующими проверочными, получим:
S K П |
1 0 1; |
|||
1,4 |
1,4 |
1,4 |
|
|
S K |
2,5 |
П |
1 0 1; |
|
2,5 |
|
2,5 |
|
557

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ
S K |
3,6 |
П |
1 0 1; |
3,6 |
3,6 |
|
|
S K |
4,7 |
П |
1 0 1; |
4,7 |
4,7 |
|
|
S K П |
1 0 1; |
||
5,8 |
5,8 |
5,8 |
|
S K |
6,9 |
П |
1 0 1; |
6,9 |
6,9 |
|
Итак, образовались три пары сумм, которые равны единице и сдвинуты на шаг кодирования 3:
S1,4 и S4,7 ; S2,5 и S5,8 ; S3,6 и S6,9 .
Согласно последним выражениям приходим к выводу, что искажены те информационные символы, номера позиций которых являются общими в каждой паре сумм, т.е. a4 , a5 , a6 . Значение этих символов необходимо ис-
править на противоположные: принято 0, а должно быть 1, и наоборот.
Таким образом, исправлено три искажения, т.е. количество искажений, которые исправляются, равно шагу добавления.
Из этого примера вытекает еще и такой вывод: значение определяет не только шаг добавления, а и количество отдельных независимых цепочек кода.
В самом деле, при 3 имеем три независимых цепочки:
a1 П1,4 а4 П4,7 а7 П7,10 а10 П10,13 а13...
a2 П2,5 а5 П5,8 а8 П8,11 а11 П11,14 а14 ...
a3 П3,6 а6 П6,9 а9 П9,12 а12 П12,15 а15...
Пример 7.29. Значение информационных и проверочных символов при передаче такие же, как и в предыдущем примере (см. рис. 7.32). Проверочные
символы |
|
приняты без искажений, |
тогда |
как |
информационные символы |
|||||||||||||||||||
a , a |
, |
a |
, |
a |
, |
a |
приняты с искажениями (рис. 7.33). |
|
|
|
|
|||||||||||||
1 |
4 |
|
5 |
|
6 |
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
a/1 |
|
a/2 |
a/3 |
|
a/4 |
a/5 |
a/6 |
|
|
a/7 |
a/8 |
a/9 |
|
a/10 |
a/11 |
a/12 |
a/13 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
1 |
1 |
0 |
0 |
0 |
|
|
1 |
1 |
1 |
|
1 |
1 |
1 |
1 |
||
|
|
|
|
|
|
|
|
К1,4 |
К2,5 |
К3,6 К4,7 К5,8 |
К6,9 К7,10 К8,11 К9,12 |
К10,13 |
|
|||||||||||
|
|
|
|
|
|
|
|
0 |
|
1 |
1 |
1 |
1 |
|
1 |
0 |
0 |
1 |
|
0 |
|
Рис. 7.33. Формирование проверочных и контрольных символов при наличии искажений в символах с номерами 1, 4, 5, 6, 12
558

Глава 7. Кодирование информации
Приведем результат сравнения контрольных и проверочных символов для каждой из цепочек:
Первая цепочка: |
S1,4 |
0; S4,7 |
1; S7,10 |
0; S10,13 0; |
Вторая цепочка: |
S2,5 1; S5,8 1; S8,11 0; |
|||
Третья цепочка: |
S3,6 |
1; S6,9 |
1; S9,12 |
1; |
На основании добытых результатов суммирования контрольных и проверочных символов рассмотрим возможность исправления искажений в каж-
дой независимой цепочке кода. |
|
|
|
|
|
|
|
|||
Первая цепочка содержит a , |
a |
, a , |
a , |
a и соответствующие про- |
||||||
|
|
|
|
1 |
|
4 |
7 |
|
10 |
13 |
верочные символы П , |
П , |
П |
|
, |
П |
. По условию искаженными явля- |
||||
|
1,4 |
4,7 |
|
7,10 |
|
10,13 |
|
|
|
|
ются a , |
a . В этой цепочке только одна из сумм равна единице: |
|||||||||
1 |
4 |
|
|
|
|
|
|
|
|
|
|
|
S |
4,7 |
K |
4,7 |
П |
|
1. |
||
|
|
|
|
|
4,7 |
|
|
|||
Согласно правилам обнаружения искажений можно утверждать, что ис- |
||||||||||
каженным является проверочный символ П . |
Тем не менее, это противоре- |
|||||||||
|
|
|
|
|
|
|
|
4,7 |
|
чит условию примера: проверочные символы приняты без искажений. Итак, искаженных информационных символов, которые входят в первый цепочку, не обнаружено. Более того, неправильно «исправленным» будет проверочный
символ П .
4,7
Вторая цепочка содержит a |
, |
a |
, |
a |
, |
a |
, и |
П |
, |
П |
, |
П |
. По усло- |
2 |
|
5 |
|
8 |
|
11 |
|
2,5 |
|
5,8 |
|
8,11 |
|
вию искажения a . Тот факт, что в этой цепочке равны единице две суммы |
|||||||||||||||||
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(S |
S 1), означает, |
что искаженным |
является один информационный |
||||||||||||||
2,5 |
5,8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
символ с общим для этих сумм индексом, т.е. a . |
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
Во второй цепочке искажение будет исправлено правильно. |
|
|
|
|||||||||||||
|
В третью цепочку входят a |
, a , |
|
a , |
a |
, |
и П , |
П , |
П |
. Согласно |
|||||||
|
|
|
3 |
|
6 |
|
|
9 |
12 |
|
|
3,6 |
6,9 |
9,12 |
|
|
|
условию примера искаженными являются a , |
и |
a . |
В этой цепочке три сум- |
||||||||||||||
|
|
|
|
|
|
|
|
|
6 |
|
12 |
|
|
|
|
|
|
мы равняются единице: S |
S |
S |
|
|
1. Согласно равенству S |
S |
6,9 |
1 |
|||||||||
|
|
3,6 |
6,9 |
|
9,12 |
|
|
|
|
|
|
|
|
3,6 |
|
||
можно исправить a ; равенство |
S |
9,12 |
1 указывает |
на искажение |
П |
, что |
|||||||||||
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
9,12 |
|
|
|
противоречит условию. Таким образом, искажение |
a |
не выявлено и непра- |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
|
|
|
|
вильно исправлено П |
. Если взять |
S |
6,9 |
S |
|
1, |
то можно считать иска- |
||||||||||
|
9,12 |
|
|
|
|
|
|
9,12 |
|
|
|
|
|
|
|
женным a , а это также неправильно.
9
Рассмотрев два примера с разным количеством искаженных информационных символов, можно прийти к таким выводам:
1. Сверточный код исправляет групповое искажение с информационных символов (см. первый пример). Чем большая длина групповой помехи, тем большим должен быть шаг добавления. Но с увеличением шага добавления возрастает и сложность кода преобразователей.
559