134 ТРУДЫ БГТУ. 2012. № 6. Физико-математические науки и информатика. С. 134-138
УДК 681.391
М. Ф. Виткова, магистрант (БГТУ);
Д. М. Романенко, кандидат технических наук, доцент (БГТУ)
АДАПТИВНОЕ МНОГОПОРОГОВОЕ ДЕКОДИРОВАНИЕ МНОГОМЕРНЫХ ИТЕРАТИВНЫХ КОДОВ
В статье рассмотрены особенности исправления ошибок различной кратности трехмерными итеративными кодами методом многопорогового мажоритарного декодирования. Проанализировано исправление независимых ошибок как низкой, так и высокой кратности, а также возможность оптимизации процесса декодирования за счет сокращения числа стадий декодирования. Особенности использования многопорогового декодера с трехмерными итеративными кодами позволяют уже на первой стадии определить, какие стадии могут быть пропущены, что приводит к сокращению общего времени декодирования.
The article are considered a features of different multiplicity error correction by tree-dimensional iterative codes with multithreshold majority decoding method. A correction of independent errors both low and high frequency rate, and also possibility of optimization decoding process by reducing the number of stages are analyzed. Some features of using multithreshold decoder with tree-dimensional iterative codes allow to define at the first stage what stages can to be passed, which leads to reducing total decoding time.
Введение. В настоящее время весьма актуальна проблема надежного хранения и передачи информации, связанная с необходимостью коррекции появляющихся ошибок. При этом ключевую роль в процессе исправления ошибок играет именно декодер. Его выбор, а также адаптация к особенностям избыточного кода является важнейшей задачей, решаемой при разработке систем хранения и передачи информации. На сегодняшний день широко используются различные декодеры, но при этом активно развивается идея многопорогового мажоритарного декодирования.
Целью данной работы является изучение свойств многопорогового декодера (МПД) и анализ возможности оптимизации процесса исправления ошибок.
Основная часть. Многопороговые мажоритарные декодеры считаются одними из самых быстродействующих. В методе многопорогового декодирования каждый информационный бит проверяется отдельно на каждой стадии [1, 2].
Под стадией многопорогового декодирования следует понимать декодирование кодового слова с заданным пороговым значением. Стадии декодирования выполняются последовательно друг за другом. Таким образом, можно сказать, что идентификация и исправление ошибок в информационной последовательности выполняется несколько раз при различных пороговых значениях.
При декодировании итеративных кодов число стадий и пороговое значение зависит от числа паритетов.
Пороговое значение - это недопустимое число проверочных символов, указывающих на наличие ошибки в проверяемом бите. При достижении порогового значения проверяемый бит принимается за ошибочный и инвертируется.
Исправление ошибочных битов зависит от значения порога на каждой стадии декодирования.
Следует отметить, что многопороговый декодер относится к декодерам мажоритарного типа, но для каждой стадии выбирается свое пороговое значение. Максимальное число стадий (.5тах) для декодирования избыточного кода определяется исходя из числа линейно-независимых паритетов (р): еслир нечетное, то
= round I —
еслиp четное, то
с =
max
2
(1)
(2)
Выполнение данных зависимостей необходимо для реализации принципа «большинства», используемого при мажоритарном декодировании. Таким образом, пороговое значение фактически показывает то необходимое число несовпадающих паритетов в процессе декодирования, при достижении которого «принимается решение» об инвертировании соответствующего декодируемого бита.
Максимальное пороговое значение (Ттах), используемое на первой стадии, принимается равным числу линейно-независимых паритетов (р). Минимальное же пороговое значение, используемое на последней стадии, будет равно Ттп = Ттах / 2 с учетом правила округления.
Рассмотрим процесс исправления однократной ошибки в информационной последовательности длиной 64 бит итеративным кодом с пятью паритетами: горизонтальным паритетом, вертикальным, первым объединенным диагональным, вторым объединенным диагональным
2
и ^-паритетом. Общий вид данного кода, схема формирования проверочных символов, основные параметры (скорость, избыточность, минимальное кодовое расстояние) и проверочная матрица приведены в [1].
Формирование проверочных символов данным многомерным линейным итеративным кодом с пятью линейно-независимыми паритетами осуществляется по зависимостям:
Д = Х1 ф Х2 ф Х3 ф Х4,
Д2 = Х5 ф Х6 ф Х7 ф Х8,
Д17 = Х1 ф Х5 ф Х9 Я,8 = X2 ф Хб ф X.
ф Хг.
13
2 ф X6 ф Хю ф X14,
Д33 Д34
--Х1 фХ18 фХ35 фХ52,
= Х2 ф Х19 ф Х36 ф Х49,
(3)
Д49 = Х1 ф Х21 ф Х41 ф Х61,
Д50 = Х5 ф Х25 ф Х45 ф Х49,
^65 = Х1 ф Х17 ф Х33
Х 2 ф Х1
66
Х49,
18 ф Х34 ф Х50,
Д80 = Х16 ф Х32 ф Х48 ф Х64.
При пяти линейно-независимых паритетах в соответствии с (1) и (2) целесообразно использовать трехстадийное декодирование с пороговыми значениями Т1 = 5, Т2 > 4, Т3 > 3 для первой, второй и третьей стадий соответственно [1].
Пусть необходимо закодировать информационную последовательность Х = 0111 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100. Следовательно, согласно [1], сформированы следующие проверочные символы Ъ1-80:
-4 " = 1010,
Д17- -20 = 0011,
Д33- -36 = 1111,
Д49- -52 = 0000,
-68 = 0000,
Д77 -80 = 0000.
(4)
Получим кодовое слово следующего вида:
^1-144 = Х1-64Д1-80 . (5)
Допустим, ошибка произошла в первом информационном бите (инвертированный бит в ошибочной информационной последовательности Х подчеркнут): Х = 1111 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100. Тогда получим следующие новые проверочные символы Д'-80:
Д'-4 = 0010,
(6)
Яп-20 = 1011, ^3-36 = 0111,
Ъ9-52 = 1000, Я65-68 = 1000, д77-80 = 0000.
Правильность каждого информационного бита контролируется пятью паритетами.
При проверке первого бита на наличие ошибки на первой стадии декодирования с пороговым значением Т = 5 получается:
д ф д=1 ф 0=1,
Д17 ф Д7 = 0 ф 1 = 1,
д33 ф д3'3 = 1(
>0 = 1,
(7)
Я49 ф <9 = 0 ф 1 = 1,
д65 ф д65 = 0 ф 1 = 1.
Результат суммирования, равный «1» (несовпадение полученного и рассчитанного проверочного символа), свидетельствует о том, что ошибка произошла в данном бите, «0» -ошибки нет [1]. Значит, на первой стадии декодирования на наличие ошибки в первом бите будут указывать все пять паритетов. Следовательно, данный информационный бит будет инвертирован, так как достигнуто пороговое значение. По завершении первой стадии декодирования вновь рассчитываются проверочные символы Д1-80.
При проверке всех 64 информационных бит на второй стадии не было получено ни одной «1» при декодировании ни одного из них, т. е. выполняется следующее равенство:
У (д ф Д) = 0,
г=1
(8)
где г - величина избыточности (для описываемого многомерного итеративного кода с пятью линейно-независимыми паритетами равна 80) [1]. Выполнение операций суммирования в (8) осуществляется по модулю 2.
Значит, в декодируемой информационной последовательности ошибки отсутствуют (или
все исправлены). Следовательно, нет необходимости выполнять третью стадию декодирования, а значит, ее можно опустить.
Однако возможны и другие ситуации. Допустим, в информационной последовательности произошли ошибки в первых четырех информационных битах: Х = 10001010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100. Тогда проверочные символы R'i-80 будут следующими:
R[_a = 1010,
R7-20 = 1100,
R33-36 = 0000,
: (9)
r;9-52 = 1000,
(10)
R65-68 = 1111,
я77-80 = 0000.
На первой стадии декодирования с пороговым значением Т1 = 5 проверка на наличие ошибок в первых четырех битах привела к следующим результатам.
Проверка 1-го бита:
Я1 Ф Я' = 1Ф1 = 0,
я17 ф я;7 = о ф 1 = 1, Я33 Ф Я3'3 = 1Ф о = 1, Я49 Ф Я'49 = о Ф 1 = 1, Я65 Ф Я'65 = о Ф1 = 1.
Проверка 2-го бита:
r © rj' = 1 © 1 = 0,
r18 © r;8 = 0 © 1 = 1, r34 © r3'4 = 1 © 0 = 1, r53 © r'3 = 0 © 1 = 1, R66 © R'66 = 0 © 1 = 1.
Проверка 3-го бита:
rJ © rJ' = 1 © 1 = 0, R19 © rJ'9 = 1 © 0 = 1, r35 © r3'5 = 1 © 0 = 1, r57 © r57 = 1 © 0 = 1, r67 © r67 = 0 © 1 = 1.
Проверка 4-го бита:
(11)
(12)
rj © r; = 1 © 1 = 0,
R20 © r; = 1 © 0 = 1, R36 © R36 = 1 © 0 = 1, r6j © r6j = 1 © 0 = 1, R68 © r6* = 0 © 1=1.
(13)
Очевидно, что на первой стадии ни одной ошибки в первых четырех битах не будет исправлено, так как пороговое значение, равное 5, не достигнуто. При декодировании остальных 60 бит (тех бит информационной последовательности, в которых ошибок не было) также не будет достигнуто пороговое значение Т = 5, например:
проверка 6-го бита:
я2 ф я2 = о ф о = о, я18 ф я'8 = о ф 1 = 1,
Я35 Ф Я3'5 = 1Ф о = 1, (14)
Я49 Ф Я'49 = о Ф 1 = 1,
я70 ф я70 = о ф о = 1,
проверка 8-го бита:
я2 ф я2 = о ф о = о, Я20 ф я2о = 1 ф о = 1,
Я33 Ф Я3'3 = 1Ф о = 1, (15)
Я57 Ф Я'Ъ7 = 1Ф 0 = 1,
я72 ф я72 = о ф о = о.
Следовательно, на первой стадии не будет инвертирован ни один бит, поскольку не было достигнуто пороговое значение - максимальное число несовпадающих паритетов при проверке четырех первых бит было 4. При этом существуют проверочные символы, указывающие на наличие ошибок. Значит, необходимо осуществить проверку на второй стадии декодирования с пороговым значением Т2 > 4. Отметим, что пересчет проверочных символов для второй стадии декодирования не требуется, так как на первой стадии ни один из информационных бит не был инвертирован.
Исходя из результатов расчетов по формулам (10)-(13) на второй стадии будут исправлены 1-й и 2-й биты, поскольку на наличие ошибки в данных битах указывают четыре паритета, что соответствует пороговому значению. Следовательно, по завершении второй стадии получим X' = 0100 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100 (ошибки остались в 3-м и 4-м битах), а также в результате пересчета новых проверочных символов имеем:
(16)
Д-4 = 1010,
Д'7-20 = 0000,
Д'3-36 = 1100,
<9-52 = 0001,
Д65-68 = 0011,
<7-80 = 0000.
При проверке первых четырех бит на третьей стадии декодирования с пороговым значением Т3 > 3 получены следующие результаты. Поверка 1-го бита:
Д ф Д'= 1 ф 1 = 0, >0 = 0,
Д17 ф Д7 = 0(
Д
>Д3з = 1 ф 1 = 0,
(17)
Я49 ф <9 = 0
0 = 0,
Д65 ф Д5 = 0 ф 0 = 0.
Проверка 2-го бита:
Д ф Д'= 1 ф 1 = 0,
<8 ф Д'8 = 0<
»0 = 0,
34
-53
>Д'4 = 1 ф 1 = 0, »0 = 0, >0 = 0.
(18)
.<3 = 0<
Д66 ф С = 0<
Проверка 3-го бита:
Д ф Д = 1 ф 1 = 0,
Д19 ф Д'9 = 0 ф 0 = 0,
д5 ф Д5 = 1 ф 0=1,
Д7 ф Д'7 = 1 ф 0 = 1, Д67 ф Д67 = 0 ф 1 = 1.
Проверка 4-го бита:
Д ф Д = 1 ф 1 = 0,
(19)
Д0 ф Д0 = 0<
»0 = 0,
Д36 ф Д6 = 1 ф 0 = 1,
ф Д61 = 1 ф 0 = 1,
Д8 ф Д8 = 0 ф 1 = 1.
(20)
Следовательно, на третьей стадии будут исправлены 3-й и 4-й биты, так как было достигнуто пороговое значение, равное 3. В итоге получим декодированную информационную последовательность Х = 0111 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100 0111 1010 0010 1100. Таким образом, по
результатам трех стадий все ошибки были исправлены.
В последнем примере были задействованы все три стадии декодирования и ни одну из стадий пропускать было нельзя.
Приведенные ситуации показывают, что в зависимости от кратности ошибки могут быть пропущены одна и более стадий. Однако также возможны ситуации, когда стадии не будут пропущены вообще. Число пропущенных стадий также зависит от числа линейно-независимых паритетов. Пропуская стадии, на которых ошибки не будут исправлены, можно существенно сократить время декодирования.
Для изучения данной особенности исправления ошибок многомерными итеративными кодами было использовано программное средство, описанное в [3], в которое добавлен модифицированный алгоритм многопорогового декодирования, адаптированный под возможность пропуска отдельных стадий.
В ходе исследования использовались трехмерные линейные итеративные коды с числом линейно-независимых паритетов 5, 7 и 9, поскольку данные коды формируют достаточное число линейно-независимых паритетов для анализа возможности оптимизации декодера. Основные параметры используемых кодов представлены в табл. 1. К ним относятся избыточность (г) и скорость кода (Д = к / (к + г)).
Таблица 1
Параметры итеративных кодов
Длина информационной последовательности к Избыточность г Скорость к / (к + г)
Пять линейно-независимых паритетов
64 80 0,44
128 128 0,50
256 192 0,57
512 320 0,62
Семь линейно-независимых паритетов
64 112 0,36
128 160 0,44
256 256 0,50
512 448 0,53
Девять линейно-независимых паритетов
64 144 0,31
128 208 0,38
256 320 0,44
512 576 0,47
Для анализа эффективности сокращения стадий декодирования использовалась информационная последовательность длиной 64 бит.
Разработанное приложение позволило получить данные (табл. 2), на основании которых построена диаграмма, изображенная на рисунке.
Таблица 2
Среднее количество пропущенных стадий, %
Кратность независимых ошибок Число паритетов
5 7 9
1 52 66 74
2 41 58 68
3 32 51 63
4 24 44 56
Представленная диаграмма отображает зависимость количества пропущенных стадий от количества паритетов и от кратности независимых ошибок.
5 7 9
Количество паритетов
О При исправлении однократных ошибок □ При исправлении двухкратных ошибок При исправлении трехкратных ошибок • При исправлении четырехкратных ошибок
Диаграмма зависимости количества пропущенных стадий от количества паритетов и кратности независимых ошибок
Были выявлены следующие зависимости: 1) с ростом числа паритетов увеличивается среднее количество стадий, на которых ошибки не будут исправлены. Так, в случае исправления однократной ошибки при использовании матрицы с пятью паритетами было в среднем пропущено 52% стадий, при семи па-
ритетах - в среднем 66%, а при девяти -в среднем 74%;
2) с ростом кратности независимых ошибок среднее количество пропущенных стадий будет уменьшаться. Например, при использовании проверочной матрицы с пятью паритетами для исправления однократных ошибок число стадий сокращается в среднем на 52%, при исправлении двухкратных - в среднем на 41%, при трехкратных - в среднем на 32%, а при четырехкратных - в среднем на 24%.
Стоит отметить, что длина декодируемой информационной последовательности на количество пропущенных стадий не влияет.
Как видно из табл. 2, пропуская стадии, можно значительно сократить время декодирования.
Заключение. По результатам проведенного исследования можно сделать вывод, что на первой стадии декодирования можно определить, какие из последующих стадий целесообразно пропустить, так как на них ни один из информационных бит не будет инвертирован. Таким образом, можно автоматически в процессе исправления ошибок уменьшить число стадий декодирования, сократив тем самым время декодирования в целом.
Литература
1. Романенко, Д. М. Многопороговое мажоритарное декодирование низкоплотностных кодов / Д. М. Романенко, Д. В. Шиман, М. Ф. Виткова // Труды БГТУ. - 2011. - № 6: Физ.-мат. науки и информатика. - С. 128-132.
2. Urbanovich, P. P. Multithreshold majority decording of LDP-codes / P. P. Urbanovich, D. M. Romanenko, D. V. Shiman // News electrical and electronic technologies and their industrial implementation: proc. VII International Conference, Zakopane, Poland, June 28 - July 1, 2011. -Zakopane, 2011. - P. 121.
3. Виткова, М. Ф. Программное средство для анализа свойств многопорогового декодера в системах передачи информации / М. Ф. Виткова // Сборник научных работ 62-й НТК студентов и магистрантов БГТУ, Минск, 18-23 апр. 2011 г. / Белорус. гос. технол. ун-т. - Минск, 2011. - Ч. 3. - С. 67-70.
Поступила 25.02.2012