УДК 681.325.3
Д. М. Романенко, доцент; Д. В. Шиман, ассистент
МАЖОРИТАРНОЕ ДЕКОДИРОВАНИЕ ДВУМЕРНЫХ ЛИНЕЙНЫХ ИТЕРАТИВНЫХ КОДОВ С ОБЪЕДИНЕННЫМИ ДИАГОНАЛЬНЫМИ ПРОВЕРКАМИ
The article are considered the results of the decoding new types of iterative codes: line two-dimensional iterative codes with double incorporated diagonal checks. The necessary of using for majority decoding four line-independent checks is proved. Also error corrections up to 2 multiplicity by using majority decoder is analyzed.
Введение. Наблюдаемое в последние годы резкое увеличение информационных потоков и ужесточение требований к целостности передаваемой и обрабатываемой информации обострили проблему надежного хранения и передачи двоичной информации. Один из способов решения такой проблемы заключается в использовании помехоустойчивого кодирования данных с помощью избыточных кодов.
Основная часть. Двумерные итеративные коды, широко применяемые на практике и более известные как ИУ-коды, являются простейшим примером использования методов комбинирования известных кодов для построения новых и представляют собой прямое произведение кодов простой проверки на четность. Поступательное развитие в данном направление избыточного кодирования привело к появлению двумерных линейных итеративных кодов с объединенными диагональными проверками [1, 2], которые характеризуются минимальным кодовым расстоянием, равным 6, следовательно, могут исправлять все одиночные и двойные ошибки.
Принцип формирования проверочных символов и порождающая матрица для такого кода при к = 16 бит представлены на рис. 1 и 2 соответственно [3-5].
0011
3
6
Рис. 1. Принцип формирования проверочных бит: 1 - информационные биты; 2 - горизонтальные паритеты; 3 - вертикальные паритеты; 4, 5 - первые и вторые объединенные диагональные паритеты соответственно; 6 - контрольная сумма
H = [P\I ] =
1111000000000000 0000111100000000 0000000011110000 0000000000001111 1000100010001000 0100010001000100 0010001000100010 0001000100010001 1000000100100100 0100100000010010 0010010010000001 0001001001001000 0100001000011000 0010000110000100 0001100001000010 1000010000100001 1111111111111111
10000000000000000 01000000000000000 00100000000000000 00010000000000000 00001000000000000 00000100000000000 00000010000000000 00000001000000000 00000000100000000 00000000010000000 00000000001000000 00000000000100000 00000000000010000 00000000000001000 00000000000000100 00000000000000010 11111111111111111
Рис. 2. Проверочная матрица двумерного линейного итеративного кода с объединенными диагональными проверками
Таким образом, согласно порождающей матрице, проверочные символы Я\-п могут быть рассчитаны по следующим зависимостям:
R = X1 0 x2 © x3 © x
R2 = X5
> x6 © x7
4?
X8,
r5 = x1 ©x5 ©x9 ©x13,
r14 = x3 © x8 ©x9 ©x14,
(1)
R16 = X1
1X6 © x11 © x16.
Ключевую роль в использовании избыточных кодов играет процесс декодирования. Одним из самых быстродействующих является мажоритарное декодирование - декодирование по принципу «большинства». Проанализируем целесообразность использования таких декодеров для приведенного выше кода с точки зрения возможности исправления ошибок различной кратности.
5
4
В двумерных итеративных кодах (рис. 1) с двойными диагональными проверками правильность каждого бита информационного слова 1 контролируется пятью проверочными символами: горизонтальным паритетом 2, вертикальным 3, первым объединенным диагональным 4, вторым объединенным диагональным 5 и контрольной суммой 6. Необходимо отметить, что контрольная сумма является линейно зависимой проверкой (может быть получена суммированием по модулю два всех проверок одного типа, например горизонтальных) и, следовательно, ее при мажоритарном декодировании использовать нельзя.
Обычно при мажоритарном декодировании применяется нечетное количество проверок. Анализ показал, что если бы для декодирования использовались три любых паритета (например, горизонтальные, вертикальные и первые диагональные), то лишь одиночные ошибки могли бы быть исправлены. Появление любых двойных ошибок приводило бы к необратимому искажению информации. Поэтому далее рассмотрим пример мажоритарного декодирования с применением всех четырех паритетов.
Пусть закодированы 16 бит (k = 16) информации X = 0111 1010 0010 1100, другими словами, согласно порождающей матрице (рис. 2), формируются проверочные символы:
r1-4 = 1010,
r5-8 = 0011, r9_12 = 0011, r13-16 = 1001.
(2)
Пусть при хранении (или передаче) во 2-м и 4-м битах информационной последовательности X возникла ошибка (инверсия бита). Тогда Л" = 0010 1010 0010 1100, а новые проверочные символы будут равны:
я1-4 = 1010, я5-8 = 0110, я^12 = 0110,
(3)
Я
= 0011.
При мажоритарном декодировании каждый информационный бит декодируется (проверяется) отдельно. Например, при проверке 8-го информационного бита будут сравниваться я2 и я'2, Я8 и я'8, Я9 и Я'9, Я\4 и Я'\4. Иными словами, будут выполнены следующие операции суммирования по модулю два (результат суммирования, равный 1, свидетельствует о том, что ошибка произошла в данном бите, 0 - ошибки нет):
r2 0 r2 = 0 0 0 = 0,
r8 0 r8' = 10 0 = 1, r 0 r = 0 0 0 = 0,
(4)
По результатам суммирования, согласно мажоритарному принципу, делается вывод, что ошибки в данном информационном бите нет. При проверке 2-го и 4-го информационных битов в результате выполнения аналогичных операций сравнения получим: - для 2-го бита:
R 0 r' = 101 = 0, r 0 r = 0 01 = 1,
R
13
R = 0 01 = 1, >r;3 = 10 0 = 1;
(5)
- для 4-го бита:
r 0 r = 10 1 = 0,
r8 0 r' = 10 0 = 1, r12 0 r2 = 10 0 = 1,
r15 0 r;5 = 0 01 = 1.
(6)
Таким образом, при считывании информации данные биты необходимо инвертировать (три паритета из четырех (большинство) показали о наличии ошибок). Аналогичные операции осуществляются для всех считываемых информационных битов.
Отметим, что при использовании всех четырех паритетов (горизонтальные, вертикальные, первые и вторые объединенные диагональные) возможно появление «мажоритарного равенства» (при декодировании бита два проверочных символа показывают на наличие ошибки, два других - нет) - в таком случае должен делаться вывод об отсутствии ошибки.
Очевидно, возможны ситуации, когда двойная ошибка не будет исправлена либо другие биты при декодировании будут приняты за ошибочные. Первая ситуация может быть следствием комбинации двух одиночных ошибок в 5-м и 15-м информационных битах (при декодировании данных битов будет наблюдаться «мажоритарное равенство»). Иначе говоря, в соответствии с кодовой последовательностью (информационные и проверочные биты), представленной на рис. 1, получим X = 0111 0010 0010 1110. При декодировании 5-го бита будем иметь:
r2 0 r2 = 0 01 = 1, r5 0 r5 = 0 01 = 1,
R10 0 R10 =
0 = 0,
(7)
r15 0 r;5 = 0 0 0 = 0.
R
■14
r;4 = 0 0 0 = 0.
В этой ситуации, как говорилось выше, принимается решение об отсутствии ошибки в данном бите.
Вторая же ситуация наблюдается при возникновении ошибок в 1-м и 3-м битах. В этом случае информационная последовательность примет вид X = 1101 1010 0010 1100. При де-
кодировании 1-й и 3-й биты будут инвертированы (ошибки в них будут исправлены): - для 1-го бита:
r e r; = i e i = o,
r5 e r'5 = o e 1 = 1, r9 e r; = o e 1 = 1, r16 e r;6 = 1 e o = 1,
(8)
- для 3-го бита:
r; e r; = i e 1 = o, r7 e r; = i e o = 1, R;i e r;; = 1 e o = 1, r14 e r;4 = o e 1 = 1.
(9)
Но при декодировании, например, 9-го бита, в котором ошибки не было, получим:
r3 e r3 = i e 1 = o, r5 e r5 = o ei = 1, r;i e rj'j = 1 e o = 1, r14 e r;4 = o e 1 = 1,
(io)
т. е. принимается решение, что данный бит необходимо инвертировать.
Аналогичным образом будет принято решение о необходимости инвертирования 11-го бита:
r3 e r3 = i e 1 = o, r7 e r; = 1 e o = 1, r9 e r9 = o e 1 = 1, r16 e r;6 = 1 e o = 1.
(ii)
Анализ процесса мажоритарного декодирования двумерного линейного итеративного кода с объединенными диагональными проверками показал, что все одиночные и большая часть двойных ошибок могут быть исправлены. Так, при длине информационного слова к = 64 бит приблизительно 76% ошибок кратностью два будут исправлены.
Заключение. Таким образом, для мажоритарного декодирования двумерного линейного итеративного кода с двойными диагональными проверками целесообразно использовать все четыре типа линейно независимых паритетов (контрольная сумма исключается). При этом все одиночные и большая часть двойных ошибок могут быть нейтрализованы. Также можно отметить, что с ростом длины информационной последовательности доля исправляемых ошибок будет увеличиваться.
Литература
1. Шиман, Д. В. Свойства и параметры линейных итеративных кодов с двойными диагональными проверками / Д. В. Шиман, Д. М. Ро-маненко // Труды БГТУ. Сер. VI, Физ.-мат. науки и информ. - 2oo7. - Вып. XV. - С. 151-154.
2. Multilevel turbocoding schemes on the basis of twodimensional linear iterative codes with diagonal checks / D. V. Shiman [et al.] // Przeglad elektrotechniczny. - 2oo8. - № 3. - P. 152-154.
3. Шиман, Д. В. Двумерный линейный итеративный код с объединенными диагональными проверками / Д. В. Шиман, Д. М. Романенко // Информационные технологии управления в экономике - 2oo7: Респ. науч.-практ. конф., Брест, 24-25 апр. 2oo7 г. / БрГУ им. А. С. Пушкина. -Брест, 2oo7. - С. 81-84.
4. Multilevel turbocoding schemes on the basis of twodimensional linear iterative codes with diagonal checks / D. V. Shiman [et al.] // News electrical and electronic technologies and their industrial implementation: V International Conference NEET'2oo7. - Zakopane, Poland, 2oo7. - P. 97.
5. Шиман, Д. В. Метод преобразования цифровой информации на основе псевдослучайного перемежения и линейного итеративного кодирования с объединенными диагональными проверками / Д. В. Шиман, Д. М. Романенко // Информационные системы и технологии (IST'2oo8): IV Междунар. конф., Минск, 4-6 нояб. 2oo8 г. / БГУ. - Минск, 2oo8. - С. 95-ioo.