Научная статья на тему 'О свойствах кодирования на основе турбопроизведений'

О свойствах кодирования на основе турбопроизведений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
162
43
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «О свойствах кодирования на основе турбопроизведений»

О СВОЙСТВАХ КОДИРОВАНИЯ НА ОСНОВЕ ТУРБОПРОИЗВЕДЕНИЙ

ЕВ. СТУПАЧЕНКО, МГУ

Проблема защиты данных от помех при передаче по каналу связи - одна из важнейших проблем кодирования. В мире придумано и используется очень много различных вариантов кодирования. Предпочтение тому или иному кодеку отдается исходя из многих факторов (шум в канале, скорость передачи, способ передачи, тип передаваемых данных и т.д.). Интегрального улучшения в кодировании достичь практически невозможно. Но для каждой конкретной задачи придумывают новые кодеки, и здесь остановки в развитии теории помехоустойчивого кодирования, похоже, не будет. В нынешнее время популярными стали варианты кодирования с мягкими входами, т. е. когда на вход кодеру дается не только информация, но и правдоподобие этой информации. Наилучшие результаты (по скорости передачи данных) при таком подходе показывает турбо-кодирование, основанное на произведении кодов Хемминга и кодов с битами четности, при аддитивном белом гауссовском шуме (АБГШ) в канале.

В данной работе рассмотрены известные варианты различных турбокодов (произведение кодов с битами четности, кодов Хемминга). Приведено их подробное описание с теоретическими обоснованиями. Также описан новый вариант турбокодиро-вания (произведение кодов Рида-Соломона), рассмотрено его поведение в различных каналах битовой модуляции при различных шумах.

Целью работы ставилось исследование различных вариантов турбокодирования, анализ возможности и целесообразности применения турбокодирования как произведения кодов Рида-Соломона, сравнение и анализ результатов применения различных кодеков при различных скоростях передачи,

шумах в канале. Также целью работы ставилось получение необходимых оценок по времени работы и используемой памяти рассмотренных алгоритмов кодирования.

В качестве сравнения были рассмотрены результаты разработчиков comtech AHA corporation. Ими был разработан чип 4540 Astro OC-3, осуществляющий кодирование/декодирование различных турбопро-изведений кодов Хемминга и кодов с битами четности. Работа выполнена на кафедре МАТИС МГУ под руководством Носова В. А.

1. Обзор результатов

1. В параграфе 2 «Общая схема кодирования на основе турбопроизведений» описаны известные алгоритмы турбокоди-рования. Приведена теорема об условиях для выбора кодов в турбопроизведении. Приведены временные оценки алгоритма кодирования.

2. В параграфе 3 «Турбопроизведение кодов Рида-Соломона» рассмотрены алгоритмы кодирования и декодирования произведения кодов Рида-Соломона. Приведены временные оценки алгоритма декодирования. Приведена модернизация алгоритма Чейса, декодирования турбокодов, применимая к кодам Рида-Соломона.

3. В параграфе 4 «Результаты тестирований» приведены результаты тестирования для кодов Рида-Соломона, турбопроиз-ведения расширенных кодов Хемминга, тур-бопроизведения кодов с битом четности, турбопроизведения расширенных кодов Рида-Соломона, турбопроизведения расширенного кода Хемминга и расширенного кода Рида-Соломона. Все тестирования проводили в канале с гауссовским шумом при однобитовой модуляции, сочетая мягкие и жест-

кие метрики. Приведены выводы по тестированиям, показывающие согласованность работы описанных алгоритмов с алгоритмами, разработанными AHA corporation. Также в выводах показана целесообразность применения произведения кодов Рида-Соломона.

2. Общая схема кодирования на основе турбопроизведений

2.1 Введение

В данном разделе описана общая схема турбопроизведения линейных кодов. Приведены обоснования алгоритмов, требуемые теоремы.

2.2 Произведение линейных кодов 2.2.1 Кодирование

Вертикальные проверочные символы

-kl-

->4-n1 - kl-

Рис. 1

Для простоты рассматривается произведение двух двоично-линейных кодов (п1, к1, т1) и (п2, к2, т2). Где п1 и п2 длины кодовых слов в символах, к1 и к2 количество информационных символов, а т1 и т2 длины символа в битах. Данные кодируются горизонтальным (1) и вертикальным (2) кодом, как показано на рис. 1. Таким образом, получаются горизонтальные и вертикальные проверочные символы. Для того чтобы получить «проверочные от проверочных», используется один код (обычно горизонтальный (1)). Произведение двух кодов назовем матрицей турбокода.

Теорема

Для двоично-линейных кодов «проверочные от проверочных» символы будут одинаковы независимо от того, будет ли применяться горизонтальный код или вертикальный.

Доказательство

Пусть есть два двоично-линейных кода с функциями кодирования /1 и /2. Линейность кодов означает линейность функ-

^ р 1 k 1 л n 1_k 1

ций кодирования, т.е. еслиj\. A -7 A , то

Anl_kl

Mx - y) = f1(x) - fi(y),

где А ХОЩисключающее или), а А = Ет1 набор двоичных слов длины т1. Из линейности /1 следует, что./1(0) = 0, т.к. ./1(0) = /1(х а х) = /1(х) а /1(х) = 0. Поэтому достаточно доказать теорему для базисных векторов (0...010...0) с единицей на /-ой позиции и далее воспользоваться линейностью кодов и индуктивной базой для данных из нулей (для данных из одних нулей теорема, очевидно, верна). Пусть г1 = п1 - к1, г2 = п2 - к2.

1 0 .. 0 a1 . . ar1

0 0 .. 0 0 . . 0

л г (N 0 0 .. 0 0 . . 0

k b, 0 . . 0 a1 * b1 . a * b

с i br 2 0 . . 0 a * b "1 r2 a * b Wr1 r2

/1(10.0) = а = а1.аг1;

/2(10.0) = Ъ = ЪХ...ЪЛ.

Аргументы у/1 и/2 разной длины к1 и к2 соответственно. Каждое аг и Ъг е {0, 1}, т.е./2(аг0.0) = 0.0 если аг = 0 и Ъ1.Ъг2 если аг = 1. Или в общем случае /2(а/0...0) = Ъ1 * а1...Ъг2 * а/, т.е. при вертикальном (2) кодировании получится матрица

( b * a1

b. * a , ^

1 r

b . * a, ••• b . * a ,

V r2 1 r2 rl J

а при горизонтальном (1), гдеfi(bjO.O) = ai * b.. .0-1 * b.

Г а * Ь,

V « * Ьг 2

а, * Ь Л

а, *Ь.

В силу коммутативности умножения в поле {0, 1} полученные матрицы одинаковы. Ясно, что от перестановки столбцов и строк суть доказательства не поменяется, поэтому доказательство обобщается на любой вектор (0...010...0), т.е. теорема доказана. Ч.Т.Д.

2.2.2. Некоторые свойства турбокодов

Степень кодирования:

к1 * к 2

г =-.

п1 * п2

Кодовое расстояние:

ё = Л * ё 2 .

Скорость кодирования

Рассматривается вариант, когда горизонтальный и вертикальный коды совпадают. Длина кодового слова п, степень кодирования г, длина символа в битах т. Пусть алгоритмическая сложность этого (вертикального или горизонтального) кодирования есть С(п, г). Тогда сложность турбокодирования будет

С^(п, г, т) = т * п * (1 + г) * С(п, г).

При фиксированных т и г сложность турбокодирования С1(п, г, т) = С^(п) будет асимптотически меньше, чем сложность аналогичного по длине кодового слова и степени кодирования С(п2), когда С(п) порядка п1+Е, Ув > 0, т.е. применение турбоко-

дирования для увеличения скорости кодирования эффективно, если С(п) ~ п1+в, Ув > 0.

Другие свойства будут рассмотрены

позже.

2.2.3 Декодирование

Декодирование осуществляется исходя из мягких метрик, то есть исходя не только из переданного бита данных, но и его правдоподобия (при жестких метриках это правдоподобие у всех бит совпадает).

2.2.3.1 Создание мягких метрик по принятому сигналу

Будем рассматривать следующий тип модуляции (рис. 2):

- X- вектор битовых данных.

- Преобразователь данных в сигнал переводит «0» в -1, «1» в +1.

Шум в канале считаем гауссовским с математическим ожиданием 0 и дисперсией а2 (N(0, о2)), т.е. в канале к вектору сигнала добавляется случайный вектор, каждый компонент которого распределен по гауссу N(0, о2). Часто такие помехи в канале называют аддитивным белым гауссовским шумом (АБГШ).

- Преобразователь сигнала в данные переводит сигнал в зависимости от знака в «0» или «1» и сообщает декодеру правдоподобие каждого бита (в жесткой схеме такого правдоподобия нет).

- П(У, Рг) - снова битовые данные.

Описанную модуляцию часто используют в каналах связи. Возможны и другие типы модуляции, когда преобразуются не биты, а символы, состоящие из нескольких бит.

На вход декодеру в качестве правдоподобия бита подается модуль значения сигнала |£г'|. Это обуславливается следующими выкладками:

Пусть 5 е Яп - вектор (столбец или строка матрицы турбокода), принятый декодером, е е {0,1} - исходный вектор сообщения, а п - вектор шума. Тогда 5 = е7 +п], где предполагается, что п] ~ N(0,ст2).

Лучшим решением преобразователя будет вектор у = sgn(5) е {0,1} (если какое-то ф 0 , то у) = +1).

Теперь встает вопрос, что считать правдоподобием уу За правдоподобие примем логарифм отношения правдоподобий.

Л( y.) =

log

P(ej = +11 s, )

P(ej = -1|s, )

Используя формулу Байеса, получим:

P(e. =+1, Sl = sl)

P(e. =+1| si) =■

P(S, = s,)

P(Sj | e. =+1) * P(ej =+1) p(S, = Sj)

P(s. | ef =+1) * 12

P(S = Sj | e, =+1) * 12 + P(Sj = Sj | e, =-1) * >2

Ф

s -1

(s, - О (s, +

Ф

с

+ Ф

с

где ф(х ) =

V2

1 -Г г*e 2 .

*п

Тогда получаем Л(у, ) = —- * IsJ. Здесь

с

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

принимаем с2 = 2, фактически умножая

принятый сигнал на . При декодировании это будет учтено. 2.2.3.2 Декодирование строчки/столбца

Для декодирования используется алгоритм Чейса (D. Chase):

1) фиксируется некоторое число Р > ё - 1, где ё кодовое расстояние (чем больше Р, тем лучше декодирование);

2) далее ищутся те биты, у которых правдоподобие наименьшее по модулю, и создается массив Q из 2Р слов, где на местах «слабо правдоподобных» битов ставится все возможные комбинации из 0 и 1;

3) массив декодируется по жесткой схеме, и каждый бит слова массива преобразуется в сигнал (0 -> -1, 1 -> 1);

4) ищется слово 1 из Q, которое ближе всего (в евклидовой метрике) к принятой строчке/столбцу 5, это слово и есть результат декодирования;

5) далее для каждого 7-ого бита определяется новое правдоподобие. В массиве ищется слово 1-', у которого '-ый бит отличается от ]-ого бита слова 1, и оно ближе всего к 5 . Если такого слова нет, то правдоподобие считается равным 1. Иначе оно равно

lis - zj|| -IIs - z\\2

Такой алгоритм декодирования обуславливается следующими выкладками:

Определим = {f+j, q+2,...} как подмножество множества всех кодовых слов, где на месте каждого j-ого бита стоит «+1», а Q- = fe, ?А2,...} как подмножество множества

всех кодовых слов, где на месте каждого j-ого бита стоит «-1». Тогда

P(ej = +1|s) = £ P(e = q\S),

q-Q+

P(ej = -11 s) = £ P(e = q\s),

q-Q-

и, пользуясь правилом Байеса,

P(s | e = q) * P(e = q)

P(e = q^) =-

P( s)

получим

P(ej =+1| s) = P- *2 P( s|e = q) * P(e = q),

P(s) qQ

P(ej = -11 s) = p(L P(s | e = q ) * P(e = q ).

( ) qeQj

4

a

При равной вероятности появления каждого кодового слова ( P(e = q) = cows/1) и, учитывая, что

P(" | e = q) = Ф

" '*... *Ф|

sn- q„

\ n II""-n2

* e

имеем

Л( z,) =

log

P(e j = +11 "j )

P(e j =-11 "j)

2 P(" I e = q)

log

2 P(" I e = q)

2

qsQj

Ik" -q I2 •>. _ 2

log-

22«"

qeQ j

II"-q=112

log

M.

2 *ст2

" - q.

" - q.

где д+ и д- наиболее близкие в евклидовой метрике к 5.

Очевидно, одно из них и есть х, а другое , наиболее близкое в евклидовой метрике к 5, у которого на месте ]-ого бита стоит бит, противоположный у'-ому биту х. Остальные экспоненты незначительны. Те-

перь умножая правдоподобие Л(z s) на или полагая а2 = 2, получим

а

Т

Л( z.) = - * V . 4

" - z - " - z

2.2.4 Пример применения алгоритма Чейса

Рассмотрим кодирование Хемминга с проверочной матрицей:

(0 0 0 1 1 1 Г|

H =

0 110 0 11 Ч1 0 1 0 1 0 1

Пусть требуется передать кодовое слово с = 0100101. Для передачи через канал оно преобразуется в С = (-1, 1, -1, -1, 1, -1, 1), и в канале к нему прибавляется вектор шума

E = (+1,2, -0,1, +0,2, +0,3, +0,2, -0,9, -1,1), тогда принятое слово будет W = C + E = = (0,2, 0,9, -0,8, -0,7, 1,2, -1,9, -0,1).

Если декодировать слово W, используя жесткие метрики, то получим, что W w = 1100100 имеет ошибку в H*w = 110 = 6 бите. То есть алгоритм декодирования выдаст слово 1100110, а значит, неверный результат.

Теперь же рассмотрим на этом примере работу алгоритма Чейса.

1. Положим P = 2 > d - 1 (для кода Хемминга кодовое расстояние d = 3).

2. Наименьшее, по модулю, правдоподобие в слове w у 1-го (0,2) и 7-го (-0,1) битов. Создаем массив из 2P = 4 элементов:

б = { 0 100100 0 10010 1 1 10010 0 = w

1 10010 1

}

3. Декодируем Q по жесткой схеме:

б1 = {

0100101 (исправлен 7-ой бит) 0100101 (кодовое слово) 1100110 (исправлен 6-ой бит)

0100101 (исправлен 1-ый бит) }

Q'^ {(-1, 1, -1, -1, 1, -1, 1), (-1, 1, -1, -1, 1, -1, 1), (-1, 1, -1, -1, 1, -1, 1), (-1, 1, -1, -1, 1, -1, 1)}.

4. Итак, Q = {(-1, 1, -1, -1, 1, -1, 1), (-1, 1, -1, -1, 1, -1, 1)} = {Q1, Q2} (2 других элемента массива совпадают с первым, поэтому писать не имеет смысла). Расстояние в евклидовой метрике ||W - Qjf= 3,64, \\W -Q2|f =

= 10,04, а значит, декодированным словом будет q1 = 0100101 (что совпадает с передаваемым словом). Новое правдоподобие для 1-го и 7-го битов будет

-4 • |3.64 -10.04 ~ !9,

а для остальных бит 1.

Таким образом, в силу того, что Q1 достаточно близко к W, а другие слова достаточно далеко, декодер уверенно (с правдоподобием 1.9) декодировал два сомнительных бита.

ст

а

1

2

2- а

II""-5112

2 - а

2 - а

e

1

2

*

2

2

Рис. 3 Здесь Ц/') - матрица правдоподобия после 1-й итерации, Ь(0) - матрица канального правдоподобия, Щ) - некоторая весовая функция

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2.2.5 Возможности по улучшению декодирования

Таким образом, при декодировании результаты канального правдоподобия используются неоднократно. Выбор функции &(/), вообще говоря, не определен, но логичнее выбирать ее так, чтобы она возрастала. Так, чтобы вначале канальное правдоподобие сильно влияло на декодирование, а затем слабее и слабее. Кроме того, 0 < к(г) < 1.

3. Турбопроизведение кодов Рида-Соломона

3.1 Произведение кодов Рида-Соломона

В силу того что коды Рида-Соломона являются двоично-линейными, для них проходит указанная выше схема произведения двух кодов. Мы рассмотрим это кодирование на примере произведения двух одинаковых расширенных кодов Рида-Соломона (16, 13) х (16, 13). Код Рида-Соломона (16, 13) есть расширенный одним символом четности код (15, 13) с символами по 4 бита, двумя проверочными символами, исправляющий одну символьную ошибку или две с указанием обоих позиций. Еще один проверочный символ (символ четности) добавляется для увеличения кодового расстояния. Также получаются более удобные для ЭВМ битовые размеры.

3.2 Характеристики кода

Полученный турбокод имеет кодовое расстояние (в символах) равное 3 * 3 = 9. Если взять аналогичный по длине кода, символа и степени кодирования усеченный код

Рида-Соломона (256, 170) с 16-битными символами, то его кодовое расстояние будет 87. Возникает вопрос: «Чем же так хорош полученный турбокод? Да и хорош ли вообще?» Кодовое расстояние характеризует способность кода к восстановлению ошибок. При кодовом расстоянии 87 код (256, 170) исправляет любые (87 - 1) / 2 = 43 символа. Турбокод может восстанавливать только любые (9 - 1) / 2 = 4 символа. Однако при определенном расположении испорченных символов восстанавливающая способность турбокода возрастает до 31 символа, что все равно меньше, чем 41. Что касается битового расстояния, то и тут турбокод отстает (минимальное 16 против 630, среднее 54,5 против 689,2). Это указывает на большое количество слов, которые турбокод вообще никак не распознает. Однако, несмотря на все эти громадные проигрыши, результаты тестирований показывают, что турбокод и не собирается отставать от аналогичного кода Рида-Соломона по количеству исправленных ошибок. А при передаче мягких метрик в канале с АБГШ дает существенный выигрыш. Такие результаты получаются за счет итеративности кодирования.

3.3 Кодирование и декодирование

Сложность кодирования кодов Рида-Соломона [4] (п - к) * к = п2 * г * (1 - г) символьных операций сложения + умножения, где п - длина кодового слова в символах, к -количество информационных символов, а г -степень кодирования.

Сложность декодирования кодов Рида-Соломона при использовании алгоритма

Берлекэмпа-Мэсси [4] составляет 4.5 * п * (п

- к) + 5 * (п - к)2 = 4.5 * п2 * (1 - г) + 5 * п2 * (1 - г)2 операций умножения + сложения.

Кодирование и декодирование осуществляются по общей схеме. Об оценках времени на кодирование было сказано выше, здесь турбокодирование дает существенный выигрыш в силу того, что кодирование Рида-Соломона занимает по времени п2 * г * (1 -г), т.е. кодирование всей матрицы займет т * п * (1 + г) * п2 * г * (1 - г) = т * п3 * г * (1 -г2), в то время как для аналогичного кода Рида-Соломона это время будет т * п4 * г2 * (1 - г2), т. е. в п * г = к раз медленнее (в рассматриваемом случае в 13 раз медленнее). Что касается декодирования, то тут на тур-бокод влияют такие константы, как количество итераций - I и количество битов (символов), подвергающихся сомнению в алгоритме Чейса - Р. Пусть на декодирование строчки/столбца тратится В(п, г) операции, с использованием алгоритма Чейса 2 * В(п, г). На I итераций декодирования потребуется I * т * п * (1 + г) * 2Р * Б(п, г). В нашем случае Б(п, г) = 4,5 * п2 * (1 - г) + 5 * п2 * (1 -

г)2 = п2 * (1 - г) * (9,5 - 2,5 * г), т.е. для кода

22

с параметрами п и г и теми же операциями умножения и сложения 0(п2, г2) = т * п4 * (1

- г2) * (9,5 - 5 * г2), т.е. быстродействие тур-бокода отличается от аналогичного кода Рида-Соломона в п * (9.5 - 5 * г2) / (9.5 - 5 * г) / I / 2Р раз (в нашем случае в 20 / I / 2Р). Для хорошего декодирования I = 8, Р = 4, т.е. турбокод в 6 раз медленнее.

3.4 Модернизация алгоритма Чейса

В алгоритме Чейса используется создание массива из 2Р элементов. Этот массив создается следующим образом:

1) в принятом слове ищутся Р битов с наименьшим правдоподобием;

2) на месте каждого такого бита ставится 0 и 1, таким образом, получается ровно 2Р слов;

3) каждое такое слово декодируется по жесткой схеме;

4) и т. д. алгоритм описан полностью в главе «Декодирование строчки/столбца».

Суть в том, что алгоритм работает с массивом экспоненциального размера и при этом на его создание и поиск в нем тратится экспоненциальное время, что неприемлемо для работы с большими Р.

В алгоритме Чейса «сомнению» подвергаются биты. Модернизация, а точнее, некоторая адаптация к кодированию Рида-Соломона заключается в том, что сомнению начинают подвергаться символы. Более того, сомнительные символы считаются стертыми. Итак, модернизированный алгоритм выглядит так:

1) в принятом слове ищутся Р > п * (1 - г) символов с наименьшим правдоподобием (правдоподобие символа можно, например, считать как минимум из правдоподобия всех бит символа

I5 = тш( 51|,...,| 5т| ];

2) исходя из того, что код Рида-Соломона может восстановить 2 * I стирания, создаем массив из ср(1-г)+1 элементов, где восстанавливаем все возможные сочетания п * (1 - г) из Р символов и еще один элемент массива - слово восстановленное без стирания;

3) далее, как и раньше, определяется новое правдоподобие каждого бита.

А значит, сложность алгоритма декодирования будет уже I* т * п * (1 + г) * Ср(1-г) * Б](п, г) + I * т * п * (1 + г) * Б(п, г). Причем ^(п, г) = Б(п, г) - 1.5 * п2 * (1 - г) -4 * п2 * (1 - г)2 = 3 * п2 * (1 - г) + п2 * (1 - г)2 = п2 * (1 - г) * (4 - г), так как если в алгоритме декодирования кодов Рида-Соломона известны все позиции ошибок, то алгоритм Берлекэмпа-Мэсси и алгоритм вычисления позиций ошибок в схеме декодирования не нужны [4]. Теперь в сложности декодирования вместо экспоненциального члена 2Р стоит полиномиальный член Ср(1-г). А значит, модернизированный алгоритм даже при очень больших Р (для декодирования по алгоритму Чейса слова кода Рида-Соломона (256, 170) с 16-битными символами требуется Р порядка 100, и понятно, что создать массив из 2100 элементов нереально) сможет работать реальное время.

Рис. 4

4. Результаты тестирований

На графике (рис. 4) показаны результаты тестирования в канале с гауссовским шумом 8-миитеративного турбокодирования на основе расширенных кодов Хемминга и кодов Рида-Соломона. На графике зависимость по оси абсцисс дисперсия гауссовско-го шума, по оси ординат логарифмическая (10-ый логарифм) шкала вероятности появления ошибочного бита.

На графике (рис. 4) видно, что в канале с гауссовским шумом при однобитовой модуляции даже жесткая схема турбокоди-рования, основанная на произведении расширенных кодов Хемминга (32, 26) х (32, 26) (размер блока 1024, степень кодирования 0,676), обладает лучшей исправляющей способностью, чем аналогичный (по размеру блока и степени кодирования) код Рида-Соломона (128, 84, 8).

На графике (рис. 5) показаны результаты тестирования в канале с гауссовским шумом различных 8-миитеративных вариантов турбокодирования, в том числе (второй справа) график, отражающий работу турбокодирования на основе кодов Рида-Соломона. Декодирование всех турбокодов на основе алгоритма Чейса.

На графике (рис. 5) видно, что турбо-кодирование на основе произведения расши-

ренных кодов Рида-Соломона (16, 13) х х (16, 13) (размер блока 4096, степень кодирования 0,676) несколько отстает от произведения кодов Хемминга с аналогичной степенью кодирования. Но коды Рида-Соломона способны также исправлять и пакетные ошибки, кроме того, при заданном блоке размере блока обеспечивают более широкий спектр степеней кодирования.

Тесты турбопроизведения кода Рида-Соломона (16, 11, 4), расширенного одним символом четности, и кода Хемминга (32, 26, 1), расширенного одним битом четности. Размер блока 1124. В канале гауссовский шум с дисперсией 0,71. Декодеру передаются мягкие метрики (3 бита). Справа показано количество итераций (0 итераций отсутствие кодирования). Итерации идут последовательно: горизонтальная - кодирование Рида-Соломона, вертикальная - кодирование Хемминга.

Результаты тестирования (рис. 6) кода Рида-Соломона с одним символом четности (256, 143, 8) (размер блока 2048 бит, количество информационных бит 1144) и аналогичного (по размеру блока и количеству информационных символов) турбопроизве-дения кода Рида-Соломона с одним символом четности и расширенного кода Хеммин-га Щ16, 11, 4) х Н(32, 26, 1). Тесты двух кодеков проведены независимо друг от друга (рис. 7).

ТигЬб ■ ■ ТЪгЬо" ■

ТигЬо- ■ ТЪгЬо- ■ ТигЬо ■ ■

ТигЬо ■

2

5

Дисперсия Гауссовский шум / жесткие метрики Равномерный шум / жесткие метрики Без кодирования

.RS(256,143,8) 7PC(1144,2048) RS(256,143,8) 7PC(1144,2048) Гауссов-ский Равномерный

0,50 Solomon T"dbe° Solomon Solomon Solomon

0,51 Solomon Turbo Solomon Turbo Solomon Solomon

0,52 Solomon Turbo Solomon Solomon Reed Solomon

0,53 Solomon Turbo Solomon Turbo Solomon Solomon

0,54 Solomon T"dbe° Solomon ^ Solti'nnorV Solomon

0,55 Spl6nrlon Turbo Solomon Turbo Siilo'mgn Solomon

0,56 Solomon Turbo Solomon Reed"-Solomon Reed Solomon

0,57 Solomon Turbo Solomon Turbo " Sefio-. " .Solomon. Solomon

0,58 Solomon Л*£ • Solomon ^ So Lorn ¿л Solomon

0,59 .Salomon Turbo Solomon Turbo ■Solomon " .Reed Solomon

0,60 .Soiorrwn' Turbo Solomon Rjeed:.r. Solbfiflori" ■ Reed-. Solomon

0,61 iolomohr Turbo Solomon Turbo -Solcriifjorr Solomon

0,62 ."Sniorfyin T"dbe° Solomon ■ Sotofioiii^ -J^&d. ^ "Solornorh

0,63 SjjforfMjri' - Raed^ 'SotDi/ion ^¿Ьггюм. '■Salnrpiin

0,64 '^omon- й1 ■'Saionioh- ReecT ■'. ■Й[ртопг"

0,65 ■Soiomon Turbo .' .Si Ionics iTt^bp : ¿loiViorj SoloJiniM":.

Рис. 7

Дисперсия Гауссовский шум / жесткие метрики Равномерный шум / жесткие метрики Без кодирования

RS(255,143,8) 7PC(1144,2048) RS(255,143,8) 7PC(1144,2048) Гауссов-ский Равномерный

0,75 г .i officii.

При высоком уровне дисперсии кодирование ведет себя следующим образом (рис. 8).

Результаты тестов показывают, что турбокодек исправляет более широкий спектр шумов, чем код Рида-Соломона.

5. Полученные оценки

Алгоритм декодирования кодов Рида-Соломона с исправлением стираний

1) 4 * п * г + 2 * п * (г - Ь) + 10 * г2 + 8 * * Ь2 - 6 * г * Ь - 2 * (г - Ь) операций умножения;

2) 2 * п * г + п * (г - Ь) + 10 * г2 + + 8 * Ь2 - 6 * г * Ь - 3 * (г - Ь) + 2 * г операций сложения;

3) (г + Ь)2 + п + 6 * г операций сравнения;

4) 4 * г операций деления. Турбокодирование на базе произведения одинаковых кодов:

1) кодирование т * п * (1 + г) * С(п, г), где С(п, г) - сложность кодирования (в операциях над т-битовыми символами);

2) декодирование;

а) общий случай (универсальный алгоритм Чейса)

I * т * п * (1 + г) * 2Р * Б(п, г), где D(n, г) - сложность декодирования (в операциях над т-битовыми символами);

I - количество итераций;

Р - число бит, «подвергающихся сомнению», в алгоритме Чейса;

б) для кодов Рида-Соломона

I * т * п * (1 + г) * ср (1-г) * Б\п, г) +

+ I * т * п * (1 + г) * Б(п, г),

где Дп, г) - сложность декодирования (в операциях над т-битовыми символами);

В1(п, г) < В(п, г) - сложность декодирования без алгоритма Берлекэмпа-Мэсси и алгоритма поиска позиций ошибок;

I - количество итераций;

Р - число символов, «подвергающихся сомнению», в модернизации алгоритме Чейса для кодов Рида-Соломона.

Заключение

Получена трудоемкость описанных алгоритмов, теорема об условиях для выбора кодов в турбопроизведении. Все описанные алгоритмы реализованы на языке программирования С++. Проведены тесты алгоритмов, на основании которых сделано следующее ниже заключение.

Турбокодирование на базе произведения кодов Рида-Соломона является перспективным направлением помехоустойчивого кодирования. Алгоритм такого кодирования, реализованный по общей схеме тур-бокодирования с использованием алгоритма Чейса при декодировании, уже дает неплохие результаты по исправляющей способности, но не по времени работы. Использование же модернизации алгоритма Чейса и способности кодов Рида-Соломона восстанавливать стирания дает хорошие результаты и по времени работы (модернизация алгоритма Чейса работает полиномиальное время, в отличие от экспоненциального у не модернизированного), и по исправляющей способности.

Турбокодирование на базе произведения кодов Рида-Соломона и Хемминга также дает интересные результаты, так как способно исправлять ошибки более широкого спектра шумов.

Библиографический список

1. Бернард Скляр. Цифровая связь. - М.: Вильямс, 2003.

2. Ирматов А.А. Лекции по теории кодирования. -М., 2000.

3. «The Art of Error Correcting Coding» Robert H. Morelos-Zaragoza 2003 год.

4. Самсонов Б.Б., Плохов Е.М., Филоненков А.И., Кречет Т.В. Теория информации и кодирование. - Ростов н/Д., 2002.

5. Зубарев Ю.Б., Кривошеев М.И., Красносельский И.Н. Цифровое телевизионное вещание. - М.: НИИР, 2001.

6. Липкин И.А. Статистическая радиотехника. Теория информации и кодирования. - М.: Вузовская книга, 2002.

7. Нечаев В.И. Элементы Криптографии. - М.: Высш. шк., 1999.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

8. Носов В. А. Специальные главы дискретной математики. - М.,1991 год.

i Надоели баннеры? Вы всегда можете отключить рекламу.