КОДИРОВАНИЕ И ПЕРЕДАЧА ИНФОРМАЦИИ X
УДК 621.391.251
М:10.15217/1з8п1684-8853.2016.1.80
ТОЧНАЯ КОРРЕКТИРУЮЩАЯ СПОСОБНОСТЬ КОДОВ ГИЛБЕРТА ПРИ ИСПРАВЛЕНИИ ПАКЕТОВ ОШИБОК
Е. А. Крук3, доктор техн. наук, профессор
А. А. Овчинников3, канд. техн. наук, доцент
аСанкт-Петербургский государственный университет аэрокосмического приборостроения,
Санкт-Петербург, РФ
Постановка проблемы: для решения задачи повышения скорости обмена информацией в системах передачи и хранения данных требуется разрабатывать эффективные методы борьбы с помехами, возникающими при передаче, хранении и обработке информации, при использовании как можно меньшей избыточности. Для этого необходимо строить схемы кодирования, ориентированные на ошибки, характерные для конкретного канала связи. Большинство реальных каналов связи являются каналами с группированием ошибок, и типичная помеха в таком канале может описываться как пакет ошибок. Коды Гилберта, обладающие простыми процедурами кодирования и декодирования, хотя и имеют малое минимальное расстояние и неэффективны для исправления независимых ошибок, тем не менее могут быть использованы для исправления пакетов ошибок. Однако корректирующая способность этих кодов при исправлении пакетов ошибок оценивается лишь с помощью не всегда точных границ. Цель: получение точных значений максимальных длин исправляемых пакетов для кодов Гилберта в зависимости от параметров их конструкции. Результаты: разработана процедура, позволяющая для заданных параметров конструкции кодов Гилберта вычислять точное значение максимальной длины исправляемого пакета. В основе построения этой процедуры лежит анализ структуры проверочной матрицы кодов Гилберта, а также структуры пакетов, которые не могут быть исправлены при декодировании с помощью проверочной матрицы. Новизна результата заключается в том, что при любых параметрах конструкции процедура позволяет вычислять точное значение корректирующей способности соответствующего кода Гилберта. Практическая значимость: полученные точные значения корректирующей способности кодов Гилберта могут применяться для аналитических оценок вероятностей ошибок в каналах с памятью при использовании этих кодов, а также могут учитываться при выборе более эффективных схем кодирования в системах передачи и хранения данных.
Ключевые слова — каналы с группированием ошибок, коды Гилберта, коды с малой плотностью проверок на четность, исправление пакетов ошибок.
Введение
Проектирование современных систем связи в подавляющем большинстве практических случаев основывается на моделях каналов связи (двоичного симметричного канала, канала с аддитивным белым гауссовым шумом), которые зачастую не являются адекватными реальным каналам связи, так как в этих моделях искажения отдельных передаваемых символов рассматриваются как статистически независимые события (ошибки). В то же время в реальных каналах связи присутствует эффект «памяти» (например, вследствие явлений замирания и рассеяния [1]), который может быть описан с помощью статистически зависимых ошибок. Для борьбы с этими явлениями в практических системах обычно используется процедура перемежения (интерливинга) [1].
Применение интерливинга обосновывается тем, что в рамках классической теории кодирования обычно строятся кодовые конструкции, ориентированные на исправление независимых ошибок, так как такие конструкции проще анализировать. Однако использование интерливера ведет к искажению реального влияния канала на передаваемые данные, канал трансформируется в канал без памяти, что уменьшает потенциально достижимые скорости передачи, а также
увеличивает сложность и задержку как на передающей, так и на принимающей стороне [2, 3]. Таким образом, важной задачей является построение схем кодирования, ориентированных на типичные ошибки канала связи, в частности, на исправление пакетов ошибок (т. е. комбинаций ошибок, при которых первый и последний ошибочный символ некоторой принятой последовательности отстоят друг от друга не более чем на некоторое количество символов, называемое длиной пакета). Отметим, что эффект пакетирования ошибок не только часто встречается в современных каналах связи, но типичен также для систем хранения данных.
Из теории кодирования известны коды, исправляющие пакеты ошибок. Например, такими кодами являются коды Файра, к ним также можно отнести коды Рида — Соломона [4]. В последние десятилетия значительное внимание уделялось кодам с малой плотностью проверок на четность, в частности, их блочно-перестановочным конструкциям [5]. Простейшим частным случаем такой конструкции являются коды Гилберта [6], изначально предлагавшиеся именно для исправления пакетов ошибок. Однако точная корректирующая способность этих кодов при исправлении пакетов ошибок (т. е. максимальная длина исправляемого пакета) была неизвестна.
КОДИРОВАНИЕ И ПЕРЕДАЧА ИНФОРМАЦИИ
Процедура для вычисления корректирующей способности кодов Гилберта
Коды с малой плотностью проверок на четность (или LDPC-коды, low-density parity-check) были предложены Р. Галлагером [6, 7] и впоследствии исследовались во многих работах [8-11]. Обладая сравнительно плохим минимальным расстоянием, эти коды, тем не менее, обеспечивают крайне низкую вероятность ошибки при малой сложности декодирования. Было показано, что LDPC-коды могут превосходить турбокоды и приближаться к пропускной способности канала [12]. Кроме того, некоторые конструкции LDPC-кодов, особенно основанные на блочно-перестано-вочной конструкции, задают также циклические или квазициклические коды, что позволяет еще более эффективную реализацию кодеров и декодеров [3, 5, 13].
Простейшим частным случаем таких кодов являются коды Гилберта [14], которые могут быть описаны своей проверочной матрицей H;:
Н,
С с
т 1-1
(1)
где Im — единичная (тхт)-матрица; С — (mxm)-матрица циклической перестановки:
С =
0 0 0 . . 0 1
1 0 0 . . 0 0
0 1 0 . . 0 0
0 0 0 . . 1 0
и l < m.
Оценке корректирующей способности кодов Гилберта (а также их модификаций) при исправлении пакетов ошибок был посвящен ряд работ [15-18]. В статье [19] была получена оценка максимальной длины b исправляемого пакета для кодов, задаваемых матрицей (1):
b < min max{y-1, т -у-1}. (2)
уе{0,<-2|
Однако оценка (2) является лишь верхней границей, не всегда выполняющейся с равенством. Точность этой границы ухудшается с ростом l.
Основной результат данной статьи заключается в следующей теореме.
Теорема. Коды с проверочной матрицей Hl, задаваемые (1), могут исправлять одиночные пакеты ошибок максимальной длины bl, где bl вычисляется по первому из выполнившихся условий.
1. b3 = m - 1, где m четно.
2. Если l > im/21 + 1, то
\bi = т / 2]+1, т
W = т / 2 -1,
нечетно; т четно.
3. Если l < im/21 + 1, то bl = m - l + 1, если m: (l - 1); bt = m - l + 1, если 3k > 0: (m - l + 3 - k(l - 1)): (l - ¡2);
bl = m - l + 2, если 3k > 0: (m - k(l- 3)) bt = m - l + 2, если 3k > 0: (m - k(l- 2)) bt = m - l + 2, если 3k > 0: (m - k(l- 1))
(l - 2); (l - 1); (l - 2).
4. Если ни одно из условий не выполнено, то
Ь1 = VI.
Для доказательства теоремы введем некоторые обозначения и докажем несколько лемм.
Представим матрицу (1) как Нг = [110, ..., Ц;-1], где Ц — (2тхт)-блоковый столбец, который мы будем называть блоком.
Код может исправлять одиночные пакеты ошибок длиной Ь, если и только если все пакеты длиной Ь находятся в разных смежных классах, т. е. не существует двух векторов ошибок e1 и e2 (образующих пакеты длиной, не превышающей Ь), для которых
32HZ
(3)
Так как e1 и e2 — пакеты ошибок, анализ (3) может быть сведен к рассмотрению подматриц Нг, состоящих из 2т строк и не более чем Ь столбцов. Очевидно, код с проверочной матрицей (1) не может исправлять пакеты ошибок длиной т, так как сумма всех столбцов любого из блоков матрицы Нг дает единичный столбец.
Каждый пакет B длиной Ь < т затрагивает не
более чем два соседних блока из Н,, скажем, К, и
1 1 Ц+р Заменим в этих блоках все столбцы, не вошедшие в В, нулями и сложим получившиеся матрицы Ьу и , получив матрицу
«(В) = Ц+1)т.
Эта матрица имеет вид
(4)
QT (В) =
! 1 ! i +1
1 0 . 0 ! о j 0 ... 0
0 1 . 0 ! о ! 1 1 0 ... 0
0 0 . 1 1 ■ ■ ■ 1 ! 0 ! 0 ... 0
i 0 0 . 0 ! о j 0 ... 0
"" "Ö" _______ PoP i i "T"" РГ" ""0
0 0 . 0 i i ! 0 ! 0 ... 1
! о 1
с i i i i i о i 0,4
где С7 и СУ+1 — части матриц Су и С+1, а I + 1 — начальная позиция (по модулю т) пакета В, которую мы будем называть относительным началом В.
Из (3) и (4) следует, что для того чтобы код Нг не мог исправлять пакеты ошибок длиной Ь < т, необходимо и достаточно, чтобы хотя бы для
одной пары пакетов В1 и В2 длиной Ь существовала пара векторов х1 и х2 длиной т таких, что
х1«(В1) = x2Q(B2). (5)
Для любого пакета В матрица ф(В) может быть представлена как ф(В) = [^1(В), ф2(В)], где ©1(В) — единичная (тхт)-матрица, у которой 1-я строка заменена на нулевую. Тогда условие (5) может быть записано как
x1Qi (В!) = х20! (В2); xi Q2 (Bi) = x2Q2 (В2).
(6) (7)
Удалив нулевую строку в ©1(В), мы получим ((т - 1)х2т)-матрицу ®'(В) = [ф (В), ^ (В)].
Обозначим через (у\в) вектор длиной т - 1, полученный из у (длиной т) удалением в-й позиции. Тогда можно сформулировать следующую лемму.
Лемма 1. Условие (5) выполняется, если и только если существует вектор у длиной т такой, что
(у \ ¿^ (Вх) = (у \ (В2);
Уь = У] = o,
где I + 1, ] + 1 — относительные начала пакетов Вх и В2 соответственно.
Рассмотрим выражение (6). Матрицы ©1(В1) и ©1(В2) являются единичными (тхт)-матрицами с нулевой ¿-й и ]-й строкой соответственно. Это означает, что х1^1(В1) дает вектор х1 с нулевой ¿-й позицией, т. е. х1 = 0. Тогда из (6) следует, что векторы х1 и х2 совпадают и содержат нули на позициях I и ]. То есть всегда может быть определен вектор у = х1 = х2, у которого у1 = у^ = 0.
Перепишем (6) и (7) как
Г(у \ 1)0[ (В!) = (у \ /)0[ (В2); {(у \ 1)0^ (В!) = (у \ (В2).
Очевидно, первое уравнение выполняется для любого у, у которого у1 = у ^ = 0, что дает утверждение леммы. Лемма доказана.
Лемма 2. Для любого пакета В
02 (В) = [1т-1,0]С У,
где 0 — нулевой вектор-столбец длиной т- 1, а у — целое число от 0 до I - 1.
Для доказательства леммы достаточно показать, что для любого пакета В соответствующая матрица Q!2 (В) является циркулянтной ((т - 1) х т)-матрицей.
Пусть В — пакет длиной т - 1, у которого первые в > 0 позиций приходятся на блок а следующие т - в - 1 — на блок Ь;+1. Тогда Я2 (В) = (В), q2 (В)]т, где ^(В) — матрица из первых т - в - 1 столбцов С1, а (2(В) — матрица из последних в столбцов С-1. Матрицы (1(В) и (2(В)
циркулянтны по построению, тогда осталось показать, что первый столбец (1(В) является циклическим сдвигом последнего столбца ( 2(В). Это следует из того факта, что (т - в)-й столбец С;-1 равен (т - в - 1)-му столбцу С1. Лемма доказана.
Из лемм 1, 2 и условия (5) следует, что два пакета длиной Ь < т имеют одинаковый синдром, если и только если существует вектор у длиной т и некоторое у, для которых
|(У \ i, 0) = (У \ /, 0)С^;
I У1 = У) = o,
(8)
где (уу, 0) — вектор длиной т, полученный из (уУ) дописыванием нулевого элемента.
Поставим в соответствие вектору у многочлен
у(х) = ~^™=$Укхк. Тогда можно записать (8) в по-
линомиальном представлении
| (у(х) \ i) = (у(х) \ i)x< modхт -1; = У) = 0,
(9)
(коэффициенты (y(x)\i) определяются вектором (y\i,0)).
Лемма 3. Если y(x) — многочлен, удовлетворяющий (9), то для любого ненулевого yk выполняется одно из условий
Ук ~ У(к-у) modт, Ук ~ У(к-y+l)modт,
Ук ~ У(к-у-1) modт •
Для доказательства отметим, что многочлен (y(x)\i) может быть представлен как
i—1 т—2
(у(х) \ i) = X Ук*к + Z Ук+1хк = (*) + (*). (Ю)
k=0 k=i
Тогда ((y(x)\j)£l)modxm - 1 можно записать как
((y(x)\j)x y)mod хт -1 =
У-1
fe+y
S Укх' k=0 k=j
т-2
+ z Ук+1^1
\
modхт-1 =
= (А у (х) + в1 (х) )mod хт -1.
(11)
Из (9) следует равенство коэффициентов при одинаковых степенях у многочленов (10) и (11).
Рассмотрим коэффициенты при степенях k = 0, i -1 (т. е. принадлежащие Ai(x)). Они соответствуют коэффициентам при тех же степенях либо из Ay(x), либо из By(x). Однако из (11) следует, что любая степень k из ((y(x)\j)x^i) mod xm - 1 может быть представлена как (s + у) mod m. Тогда
Ук 6 А
Ук 6 А'
1 М = Ук 6 А1 М = У(к-у) modт ил (Х) = yk е В1 (Х) = y(k-1+i) modт.
(12)
КОДИРОВАНИЕ И ПЕРЕДАЧА ИНФОРМАЦИИ
Аналогично для степеней к = ¿, т - 2
Ук 6 В1 М = Ук-1 6 А1 (х) = У(к-у)шсат или
Уъ е В1 (х) = е В'<(х) = У(^_у_1)шсат. (13)
Из (12) и (13) следует утверждение леммы. Следствие 1. Для любого у(х), удовлетворяющего (9), существуют неотрицательные а1, а2, а3 такие, что
а1 (у + 1) + а2 у + а3 (у-1) =
(14)
Действительно, пусть yk — ненулевой элемент вектора у. Тогда, в соответствии с леммой 2,
один из элементов Vk-ymodm, y(k-y+1)modm или y(k-y-1)modm также является ненулевым. Продолжая таким образом, мы циклически «вернемся» в yk, и может быть найден ненулевой ys, для которого выполняется одно из следующих условий:
Уз = У( s-y) mod т = Ук'
Уз y(s-y+l)mod т Ук'
Уз ~ y(s-y-l)modт ~ Ук.
(15)
Таким образом, существуют такие неотрицательные av a2, a3, для которых
ai (у + 1) + а2 у + as (у-1) = 0 mod т. (16)
Для доказательства следствия 1 достаточно показать, что возвращение в yk происходит не более чем за один проход по вектору у.
Если это не так, то либо у состоит из всех единиц и представляет собой неисправляемый пакет длиной m, либо в нем есть нулевые элементы, и тогда найдется у', возможно, меньшее, чем у из (16), для которого также выполняется условие (9), и до момента выполнения (15) совершается лишь один проход по вектору у, что завершает доказательство.
Следствие 1 также означает, что из всех у, для которых выполняется (9), необходимо выбирать наименьшее ненулевое значение.
Назовем секцией вектора у последовательность, состоящую из единицы и последующих нулей. Например, у = 100010000 содержит две секции длиной 4 и 5.
Из следствия 1 следует, что у является конкатенацией секции длиной у, у + 1 и у - 1. Следующие лемма и следствие уточняют положение этих секций.
Лемма 4. Для вектора, удовлетворяющего (9), справедливо следующее неравенство
/ + у-1 <т-1. (17)
В самом деле, пусть у,+1 — последний ненулевой элемент у [в противном случае (17) выполняется очевидным образом]. Вспомним, что элемент yj+1 равен единице, так как j — относительное
начало пакета ошибок. Предположим, что коэффициент у0 в y(x) всегда равен единице. Если это не так, соответствующий вектор у может быть циклически сдвинут с сохранением всех результатов (9), леммы 3 и следствия 1.
Тогда из леммы 3 и следствия 1 возможны следующие случаи:
У0 _ Утmodm ~ У(т—у-1) modт ~ У}+\;
У 0 _ Ут modm ~ У(т-y+l)mod т ~ У\+1' У 0 _ Ут mod т ~ У(т-y)mod т ~ Уj +1'
откуда мы получаем j + у - 1 < m - 1. Лемма доказана.
Следствие 2. Если i < j + у, то среди секций, формирующих у, секция длиной у - 1 либо отсутствует, либо встречается ровно один раз и расположена последней.
Из леммы 4 и неравенства (17) многочлен (11) может быть представлен как
'-1
((у(х) \ /) • )modхт -1 = X Укх ' +
к=0
т—у—2
X ум
xk+"< +
т-2
Z ум
X
(fc+y)mod т _
к=j
к=т-у-1
у-2 т-2
Zk у—1 ^^ к
У(к-y+l)modтх + У}х + ^ Ук-у+1х =
k=0 k=j+у
= Ат (х) + yjx''1 + Вт (х) + Ст (х). (18)
Как мы предположили ранее, пусть у0 = 1. Вначале рассмотрим случай, когда относительное начало обоих пакетов не совпадает с началом какого-либо блока hy матрицы (1). Тогда i + 1 > у - 1 или i > у - 2. Рассмотрим случаи i = у - 2 и i = у - 1. В первом случае из (10) и (18) имеем
yi+1 = У-1 mod m = Уm—1, что возможно, только если у содержит только 1. Если нет других решений (9), то максимальная длина исправляемого пакета составляет m - 1. Мы исключим такие векторы из рассмотрения.
Во втором случае для i = у - 1 имеем yi+1 = у, что невозможно, так как элемент yi+1 всегда ненулевой, тогда как yj всегда равен нулю. Отсюда i > у, т. е. степени от 0 до у - 1 полностью принадлежат Al(x), а у0 является единственным ненулевым коэффициентом из Am(x) (это следует из того, что минимальное количество позиций между ненулевыми элементами составляет у - 1, и коэффициент при x?-1 равен нулю). Степени, большие у - 1, принадлежат Bm(x) и Cm(x).
Пусть i < j + у. Тогда из (10) и (18) имем Cm(x) с Bi(x), и выполняется одно из следующих равенств:
Ук = У(к-y+l)modт , 0 ^ k <У; Ук = Ук-у У < k < i;
yk = yk-y-i, i < k < (} +y); Ук = Ук-у (I +Y)<k<m"2-
, может
Таким образом, условие yk = y(k_y+1) mod m i выполняться только для одного ненулевого элемента у, а именно y0. Из этого также следует, что для i < j + у справедливо a3 = 1, и единственная секция длиной у - 1 в у является последней.
Рассмотрим частный случай i = j + у. Тогда Cm(x) = Bi(x), и вектор у не содержит секции длиной у + 1, он содержит только (последнюю) секцию длиной у - 1, а все остальные секции имеют длину у (другими словами, a1 = 0, a3 = 1). Следствие доказано.
Проанализируем результаты леммы 3 и ее следствий. Пусть у нас есть многочлен y(x), удовлетворяющий (9), и соответствующий вектор у. Если мы обозначим через i0 и j0 количество нулевых позиций в у перед (i + 1)-й и (j + 1)-й позициями, тогда длина неисправляемого пакета оценивается как b = max(m - i0, m - j0).
Однако неизвестно, как решать (9), имея только m и l. С другой стороны, известны свойства многочлена y(x), описанные в лемме 3 и следствиях. Очевидно, что, определив коэффициенты a1, a2 и a3 из (14), мы определим многочлен y(x), удовлетворяющий (9). В то же время для некоторого m может существовать несколько решений (14), в этом случае мы должны выбрать худший случай, т. е. многочлены, задающие минимальную длину неисправляемого пакета. Далее мы покажем, что коэффициенты a1, a2 и a3, так же как и минимальная длина неисправляемого пакета, зависят от взаимного расположения относительных начал пакетов i и j.
Рассмотрим случай, когда начала одного или обоих пакетов совпадают с началом соответствующего блока матрицы Hl. Тогда значения i + 1 или (и) j + 1 должны быть равны нулю, и отсюда i = -1 mod m или (и) j = -1 mod m (так как из i = -1 mod m следует (уУ, 0) = у).
Следующая лемма связывает параметры m, у, коэффициенты a1, a2 и a3.
Лемма 5. Для вектора у длиной m и параметров i, j, у, удовлетворяющих (8), значения коэффициентов a1, a2, a3 из (14) определяются в зависимости от значений i и j в соответствии с таблицей.
Рассмотрим последовательно все возможные расположения относительных начал Ь и ] пакетов ошибок, используя полиномиальные представления (10) и (18).
1. Пусть Ь < ] и Ь = ] = -1 (этот случай соответствует первой строке таблицы). Это означает, что выполняется уравнение у(х) = (у(х)\Ь) = (у(х)\1), т. е.
т-1
.к.
(у(Х) \ ¿) = Укх ;
к=0
т-1
(fe+y) mod т
((у(х)\])ХУ)шсахт -1 = X Ук
к=0
отсюда ук = у(к-у) шой т для всех С учетом (14) получаем а1 = 0, а3 = 0. Длина неисправляемого пакета в этом случае Ь = т - у - 1.
2. Теперь пусть Ь < ], Ь Ф -1, ] Ф -1. При доказательстве следствия 2 было показано, что если Ь Ф -1, тогда Ь > у. Рассмотрим различные возможные значения Ь и ].
Во-первых, пусть Ь = у. В этом случае из (10) и (18) получаем Бт(х) с БЬ(х), Ст(х) с БЬ(х). В многочлене (10) коэффициент у+1 всегда соответствует степени х>, а степень х1 в многочлене (18) всегда принадлежит Бт(х), поэтому уЬ+1 = у0, у1+1 = у-у. То есть перед (Ь + 1)-й и (1 + 1)-й позициями у нет секции длиной у + 1, тогда длина неисправляемого пакета составляет т - у.
Во-вторых, пусть (у + 1) < Ь < (1 + у). В этом случае степень хЬ принадлежит Бт(х), уЬ+1 = у-у, у+г = у-у, что является обобщением предыдущего случая, и длина неисправляемого пакета также составляет т - у.
Рассмотренные случаи соответствуют второй строке таблицы.
3. Пусть Ь > 1 + у. Как было показано при доказательстве следствия 2, если Ь = ] + у, тогда у содержит одну секцию длиной у - 1, а другие секции имеют длину у. Однако, так как ни Ь, ни ] в рассматриваемом случае не равны -1, перед относительными началами пакетов находятся секции длиной у, поэтому Ь = т- у + 1. Если Ь > ] + у, степень хЬ принадлежит Ст(х) и Бт(х) с Л1(х), поэтому ум = у;_у+1, у+х = у/_у+1. В этом случае в векторе у перед относительными началами пакетов также находятся секции длиной у, поэтому снова Ь = т - у + 1.
Относительные начала пакетов Ь, ], коэффициенты (14) и минимальные длины Ь неисправляемых пакетов
№ U j b Коэффициенты У
1 i = -1, j = -1 m - у - 1 a1 = 0, a3 = 0 l - 1
2 -1 < i < (j + у), j * -1 m - у a1 Ф 0, a3 = 1 l - 2
3 i > (j + у), j * -1 m - у + 1 a1 = 0, a3 Ф 0 l - 2
4 i = -1, j * -1 m - у + 2 a1 = 0, a3 Ф 0 l - 1
5 i * -1, j = -1 m - у + 1 a1 Ф 0, a3 = 0 l - 2
Теперь необходимо рассмотреть случаи, когда i или j равны -1.
4. Пусть i = -1 = m- 1, j Ф -1. Тогда (10) и (18) могут быть записаны как
т-1
(у(х)\ i) = X Укхк = Ai (*); k=0
{(у(х)\ j)xy)mod хт -1 =
= Ат (х) + yjXy_1 + Вт (х) + Ст (х).
Отсюда при любом k справедливо одно из равенств: yk = y(k-у) mod m, yk = y(k-y+1) mod m. Другими
словами, коэффициент a1 в (14) равен нулю. Это совпадает с предыдущим случаем, когда Bm(x) с Al(x) и перед позицией j + 1 находится у - 1 нулей. Однако перед позицией i + 1 находится у- 2 нулей, поэтому необходимо выбрать b = max(m -у + 1, m - у + 2) = m-у + 2. Таким образом, в этом случае b = m- у + 2, a3 Ф 0, a1 = 0.
5. Пусть i Ф -1, j = -1 = m - 1. Тогда
i—1 т—2
(у(х) \ i) Укхк + Z Ук+1хк = Ai (*)+в1 (*);
k=0
k=i
т-1
((У(х) \/)хУ )modX™ - 1 = У(к-у) modrn^.
k=0
Имеем yi+i = y^ yj+1 = Ус = У(-у) mod m. Это дает b = m - у + 1, a1 Ф 0, a3 = 0.
Рассмотренные случаи завершают доказательство леммы 5.
Если известны значения коэффициентов из (14), можно вычислить минимальную длину не-исправляемого пакета. Однако в третьей и четвертой строках таблицы мы имеем одинаковые значения коэффициентов, но при этом различные значения длин пакетов. Тем не менее с учетом значений у можно видеть, что на самом деле значения длин пакетов для этих случаев совпадают. Проанализируем связь между значениями у (неизвестного при построении кода) и l, являющимся параметром кода.
Вначале рассмотрим i Ф -1, j = -1 = m - 1 (пятая строка таблицы). Как уже было показано, вектор у для таких значений i и j состоит из секций длиной у и у + 1, причем последняя секция имеет длину у. Так как i Ф -1 и у0 = 1, первый пакет ошибок затрагивает блоки h0 и h1, а во втором пакете ошибок позиция, соответствующая столбцу в Q2(B2) с единицей в первой строке (считая от нуля) или, эквивалентно, в (m + 1)-й строке блока hy, должна содержать ненулевое значение. Отсюда следует, что номер этой позиции (0 - у) mod m = m - у. Но это возможно, только если второй пакет соответствует блоку hy+1. Тогда верхняя диагональ Q2(B2) содержит у + 1 единиц, а номер столбца, содержащего второй ненулевой элемент этой диагонали
(т. е. позиция единицы в (т + 1)-й строке блока Цу+1), равен т - у. Таким образом, так как пакет В2 занимает один блок, номер этого блока - у + 1, а не у, поэтому значение у не может превышать I - 2.
Рассмотрим более детально связь между значениями у и I. Очевидно, что у < I - 1, так как пакет начинается в блоке Однако пакет может занимать два блока, и необходимо проверить, затрагивается ли пакетом блок с номером, превышающим I - 1. Пусть для некоторого I код может исправлять пакеты ошибок длиной, не превышающей Ь1. Тогда найдутся два неисправимых пакета длиной Ь1+1, занимающих первый и последний блоки Нг (предполагается, что второй пакет заканчивается в последнем блоке, но может начинаться в предпоследнем). Если второй пакет не затрагивает последний блок, это означает, что эти пакеты не исправляются кодом с количеством блоков, меньшим I, тогда мы можем рассмотреть этот более короткий код с двумя пакетами в первом и последнем блоках.
Далее, каждый вектор у, определяемый неуправляемыми пакетами [см. (3) и (8)] и являющийся решением (8) и (14), имеет соответствующее значение у, равное либо 1-1, либо I - 2. Рассмотрим код с количеством блоков, увеличенным на единицу. Длина неисправляемого пакета может либо сократиться, либо остаться прежней. В первом случае имеем у' = у + 1, во втором у' = у. Если для у' = у + 1 нет решений уравнения (14) относительно а1, а2, а3, тогда Ь1+1 = Ь1 (где Ь1 обозначает максимальную длину исправляемого пакета для кода с параметром I).
Продолжая рассматривать значения у аналогичным образом, получим значения, приведенные в последнем столбце таблицы.
Подводя итоги проведенного анализа, можно сформулировать следующие условия для вычисления длины пакета ошибок.
1. Если выполняется условие в первой строке таблицы, это значит, что т: у или т: (I - 1) для заданных т и I, и код не может исправлять пакеты ошибок длиной Ь = т - I + 2.
2. Эк, > 0: (т - (у - 1) - &(у + 1))! у или
> 0: (т - I + 3 - Щ - 1))! (I - 2), тогда Ь = т -1 + 2.
3. Зк > 0: (т - &(у - 1)): у или
Эк, > 0: (т - к(1 - 3))!(I- 2), тогдаЬ = т-1 + 3.
4. Эк > 0: (т - к(у - 1)): у или
Эк > 0: (т - к(1 - 2))! (I - 1), тогда Ь = т -1 + 3.
5. Эк > 0: (т - к(у + 1)): у или
Эк > 0: (т - к(1 - 1))! (I - 2), тогда Ь = т -1 + 3.
Имея параметры кода т и I, необходимо вначале рассмотреть условия, дающие меньшую длину неисправляемого пакета (т. е. условия 1 и 2). Затем рассматриваются условия 3, 4 и 5. Если нет выполнившихся условий, то неисправляе-мый пакет не находится в последнем блоке Нг,
тогда необходимо уменьшить I и повторить процедуру.
Следующие две леммы завершают доказательство теоремы.
Лемма 6. Если I > [т/21 + 1, то код, определяемый (1), может исправлять одиночные пакеты ошибок длиной Ь < Ь1, где
bi = m, -\т / 2] +1, m, bl = m / 2 -1,
нечетно;
m четно.
(19)
В соответствии с леммой 5 и ее следствиями для каждого ненулевого элемента y найдутся два других ненулевых элемента слева и справа от данного, отстоящих на у, у + 1 или у - 1 позиций (т. е. ненулевые элементы соседних секций). Если l > im/2l + 1, то максимальное значение у может превысить m/2, это означает, что количество секций в y минимально и равно двум, т. е. пакет ошибок содержит лишь две единицы (начало и конец пакета), переходящие друг в друга при сдвиге на у позиций.
Дальнейшее увеличение l (превышающее im/2l + 1) не приведет к уменьшению длины неуправляемого пакета. Очевидно, что в этом случае максимальная длина исправляемого пакета определяется (19).
Лемма 7. Для l = 3 и нечетного m код с проверочной матрицей (1) может исправлять одиночные пакеты ошибок длиной b = m - 1.
Литература
1. Proakis J., Salehi M. Digital Communications. — McGraw-Hill, 2007. — 1150 p.
2. Krouk E. A., Ovchinnikov A. A. Metrics for Distributed Systems // Problems of Redundancy in Information and Control Systems (REDUNDANCY): XIV Intern. Symp., 1-5 June 2014. P. 66-70. doi:10.1109/ RED.2014.7016708
3. Krouk E., Semenov S., et al. Modulation and Coding Techniques in Wireless Communications/Edited by E. Krouk, S. Semenov. — John Wiley & Sons, 2011. — 680 p. doi:10.1002/9780470976777
4. MacWilliams F., Sloane N. The Theory of Error-Correcting Codes. — North-Holland publishing company, 1983. — 782 p.
5. Lin S., Ryan W. Channel Codes: Classical and Modern. — Cambridge university press, 2009. — 710 p.
6. Gallager R. G. Low-Density Parity-Check Codes // IRE Transactions on Information Theory. Jan. 1962. Vol. 8. N 1. P. 21-28. doi:10.1109/TIT.1962.1057683
7. Gallager R. G. Low Density Parity Check Codes. — Cambridge, MA: MIT Press, 1963. — 90 p.
8. MacKay D. J. C. Good Error-Correcting Codes Based on Very Sparse Matrices // IEEE Transactions on Information Theory. Mar. 1999. Vol. 45. N 2. P. 399431. doi:10.1109/18.748992
Ясно, что для I = 3 пакеты ошибок могут занимать лишь первый и последний блоки Н3. В противном случае у равнялся бы единице и у состоял бы только из единиц. Тогда у = 2, что возможно только при I = -1, ] = -1, и в соответствии с таблицей длина пакета составляет т - у + 1, что равно т - 1 при у = 2.
Легко проверить, что для четных т и I = 3 всегда можно определить вектор у, удовлетворяющий (9) и содержащий единицы на четных позициях и нули на нечетных.
Из результатов, приведенных в таблице, леммах 6 и 7, следует утверждение теоремы.
Заключение
Рассмотрена корректирующая способность кодов Гилберта при исправлении одиночных пакетов ошибок. Сформулирована процедура, позволяющая вычислить точное значение максимальной длины исправляемого пакета в зависимости от параметров кода. Можно отметить, что обобщение кодов Гилберта путем добавления дополнительных строк-блоков к проверочной матрице может улучшить корректирующую способность кода, однако для любого блочно-перестановоч-ного LDPC-кода эта величина будет меньше размера блока.
9. MacKay D. J. C., Neal R. M. Near Shannon Limit Performance of Low Density Parity Check Codes // Electronics Letters. 13 Mar. 1997. Vol. 33. N 6. P. 457-458. doi:10.1049/el:19970362
10. Richardson T. J., Urbanke R. L. The Capacity of Low-Density Parity-Check Codes Under Message-Passing Decoding // IEEE Transactions on Information Theory. Feb. 2001. Vol. 47. N 2. P. 599-618. doi:10.1109/18.910577
11. Zyablov V. V., Pinsker M.S. Estimation of the Error-Correction Complexity for Gallager Low-Density Codes // Problems of Information Transmission. 1975. Vol. 11. N 1. P. 23-36.
12. Chung S.-Y., Forney G. D., Richardson T. J., Urbanke R. On the Design of Low-Density Parity-Check Codes within 0.0045 dB of the Shannon Limit // Communications Letters. IEEE. Feb. 2001. Vol. 5. N 2. P. 58-60. doi:10.1109/4234.905935
13. Козлов А. В., Крук Е. А., Овчинников А. А. Подход к построению блочно-перестановочных кодов с малой плотностью проверок на четность // Изв. вузов. Приборостроение. 2013. Т. 56. № 8. С. 9-14.
14. Gilbert E. N. A Problem in Binary Encoding // Proc. of the Symp. in Applied Mathematics. 1960. Vol. 10. P. 291-297.
15. Arazi B. The Optimal Burst Error-Correcting Capability of the Codes Generated by f(x)=(x"p+1)(x"q+1)/
(x+1) // Information and Control. 1978. Vol. 39. N 3. P. 303-314.
16. Bahl L., Chien R. On Gilbert Burst-Error-Correcting Codes // IEEE Transactions on Information Theory. May 1969. Vol. 15. N 3. P. 431-433. doi:10.1109/ TIT.1969.1054310
17. Neumann P. G. A Note on Gilbert Burst-Correcting Codes // IEEE Transactions on Information Theory. Jul. 1965. Vol. 11. N 3. P. 377-384. doi:10.1109/ TIT.1965.1053780
18. Zhang W., Wolf J. K. A Class of Binary Burst Error-Correcting Quasi-Cyclic Codes // IEEE Transactions on Information Theory. May 1988. Vol. 34. N 3. P. 463-479. doi:10.1109/18.6026
19. Krouk E. A., Semenov S. V. Low-Density Parity-Check Burst Error-Correcting Codes // Algebraic and Combinatorial Coding Theory: International Workshop. Leningrad, 1990. P. 121-124.
UDC 621.391.251
doi:10.15217/issn1684-8853.2016.1.80
Exact Burst-Correction Capability of Gilbert Codes
Krouk E. A.a, Dr. Sc., Tech., Professor, ekrouk@vu.spb.ru Ovchinnikov A. A.a, PhD, Tech., Associate Professor, mldoc@vu.spb.ru
aSaint-Petersburg State University of Aerospace Instrumentation, 67, B. Morskaia St., 190000, Saint-Petersburg, Russian Federation
Introduction: In order to increase the data exchange rates in data transmission and storage systems, you have to efficiently reduce the noise which comes out during the transmission, storing and processing of the data, using as small redundancy as possible. The coding schemes should consider typical errors, most common in the given communication channel. Most real communications channels are channels with memory, and a typical noise can be described as an error burst. Gilbert codes with simple encoding and decoding procedures have a poor minimal distance, being ineffective for correcting independent errors; nevertheless, they can be used for bursts correction. However, the burst-correcting capability of these codes can be estimated only by bounds which are not always accurate. Purpose: The goal is to obtain exact values for the maximal lengths of error bursts correctable by Gilbert codes depending on their construction parameters. Results: A procedure is developed which allows you to calculate the exact value for the maximal length of a single burst correctable by Gilbert code, depending on the code's construction parameters. To build this procedure, we analyzed the structure of the parity-check matrix of Gilbert codes and the structure of the bursts which cannot be corrected by parity-check matrix decoding. The novelty of this result is that the procedure allows you to calculate the exact burst-correction capability for any parameters of the Gilbert code. Practical relevance: The obtained accurate values for Gilbert code burst-correction capability can be used for analytical estimation of error probabilities in channels with memory when using Gilbert codes. They also can be taken into account to choose more effective coding schemes in communication and storage systems.
Keywords — Channels with Memory, Gilbert Codes, Low-Density Parity-Check Codes, Burst Error Correction.
References
1. Proakis J., Salehi M. Digital Communications. McGraw-Hill, 2007. 1150 p.
2. Krouk E. A., Ovchinnikov A. A. Metrics for Distributed Systems. XIV Intern. Symp. "Problems of Redundancy in Information and Control Systems" (REDUNDANCY), 1-5 June 2014, pp. 66-70. doi:10.1109/RED.2014.7016708
3. Krouk E., Semenov S., et al. Modulation and Coding Techniques in Wireless Communications. Edited by E. Krouk, S. Semenov. John Wiley & Sons, 2011. 680 p. doi:10.1002/9780470976777
4. MacWilliams F., Sloane N. The Theory of Error-Correcting Codes. North-Holland publishing company, 1983. 782 p.
5. Lin S., Ryan W. Channel Codes: Classical and Modern. Cambridge university press, 2009. 710 p.
6. Gallager R. G. Low-Density Parity-Check Codes. IRE Transactions on Information Theory, January 1962, vol. 8, no. 1, pp. 21-28. doi:10.1109/TIT.1962.1057683
7. Gallager R. G. Low Density Parity Check Codes. Cambridge, MA, MIT Press, 1963. 90 p.
8. MacKay D. J. C. Good Error-Correcting Codes Based on Very Sparse Matrices. IEEE Transactions on Information Theory, Mar. 1999, vol. 45, no. 2, pp. 399-431. doi:10.1109/18.748992
9. MacKay D. J. C., Neal R. M. Near Shannon Limit Performance of Low Density Parity Check Codes. Electronics Letters, 13 Mar. 1997, vol. 33, no. 6, pp. 457458. doi:10.1049/el:19970362
10. Richardson T. J., Urbanke R. L. The Capacity of Low-Density Parity-Check Codes under Message-Passing Decoding. IEEE Transactions on Information Theory, Feb. 2001, vol. 47, no. 2, pp. 599-618. doi:10.1109/18.910577
11. Zyablov V. V., Pinsker M. S. Estimation of the Error-Correction Complexity for Gallager Low-Density Codes. Problems of Information Transmission, 1975, vol. 11, no. 1, pp. 23-36.
12. Chung S.-Y., Forney G. D., Richardson T. J., Urbanke R. On the Design of Low-Density Parity-Check Codes within 0.0045 dB of the Shannon Limit. Communications Letters, IEEE, Feb. 2001, vol. 5, no. 2, pp. 58-60. doi:10.1109/4234.905935
13. Kozlov A., Krouk E., Ovchinnikov A. An Approach to Development of Block-Commutative Codes with Low Density of Parity Check. Izvestiia vuzov. Priborostroenie, 2013, vol. 8, pp. 9-14 (In Russian).
14. Gilbert E. N. A Problem in Binary Encoding. Proc. of the Symp. in Applied Mathematics, 1960, vol. 10, pp. 291-297.
15. Arazi B. The Optimal Burst Error-Correcting Capability of the Codes Generated by f(x)=(x"p+1)(x"q+1)/(x+1). Information and Control, 1978, vol. 39, no. 3, pp. 303-314.
16. Bahl L., Chien R. On Gilbert Burst-Error-Correcting Codes. IEEE Transactions on Information Theory, May 1969, vol. 15, no. 3, pp. 431-433. doi:10.1109/TIT.1969.1054310
17. Neumann P. G. A Note on Gilbert Burst-Correcting Codes. IEEE Transactions on Information Theory, Jul. 1965, vol. 11, no. 3, pp. 377-384. doi:10.1109/TIT.1965.1053780
18. Zhang W., Wolf J. K. A Class of Binary Burst Error-Correcting Quasi-Cyclic Codes. IEEE Transactions on Information Theory, May 1988, vol. 34, no. 3, pp. 463-479. doi:10.1109/18.6026
19. Krouk E. A., Semenov S. V. Low-Density Parity-Check Burst Error-Correcting Codes. International Workshop Algebraic and Combinatorial Coding Theory, Leningrad, 1990, pp. 121-124.