Кодовые методы нейтрализации ошибок типа «Стирание» в каналах передачи двоичной информации

142 ТРУДЫ БГТУ. 2012. № 6. Физико-математические науки и информатика. С. 142-145

УДК 681.325.3

Ю. О. Булова, ассистент

КОДОВЫЕ МЕТОДЫ НЕЙТРАЛИЗАЦИИ ОШИБОК ТИПА «СТИРАНИЕ» В КАНАЛАХ ПЕРЕДАЧИ ДВОИЧНОЙ ИНФОРМАЦИИ

Статья посвящена проблеме повышения достоверности передаваемой информации в каналах с ошибками типа «стирание». Рассмотрены классические помехоустойчивые коды с фиксированной скоростью (циклические коды CRC-r и код Рида - Соломона), а также новый класс фонтанных кодов (rateless-коды): LT-код, Raptor-код, Online-код и неслучайные стирающие коды (НССК). Проанализирована возможность применения фонтанных кодов в современных системах связи. Выявлены их преимущества и недостатки.

The article is considered the problem of reliability of transmitted information in channels with errors such as "erase". Classical redundant codes with a fixed rate (cyclic CRC-r codes and ReedSolomon code) are reviewed. A new class of fountain codes (rateless-code): LT-code, Raptor-code, Online-code and erase codes (NSSK) are reviewed too. The using possibility of fountain codes in modern communication systems is analyzed. Their advantages and disadvantages are identified.

Введение. Все большее количество людей пользуются мобильными системами, компьютерными сетями и сетевыми приложениями, такими как цифровое телевещание через Интернет (IPTV), Интернет-телефония (VoIP), распределенные сетевые игры и др. Основными требованиями, предъявляемыми к системам связи, являются надежность и высокая скорость передачи и преобразования информации. Реальные каналы передачи данных подвергаются воздействию различных помех и шумов, многие из которых физически невозможно устранить. Это приводит к ошибкам, в результате чего возникают нежелательные свойства: часть информации может быть не доставлена до получателя, а часть - доставлена с ошибочными битами. Поэтому основной задачей теории связи является восстановление сообщения, сформированного передатчиком в одной точке пространства, в другой точке пространства спустя некоторый промежуток времени. Методы решения этой задачи зависят от свойств среды передачи информации, которые могут рассматриваться как некоторые математические модели.

Целью данной статьи является анализ существующих методов повышения достоверности передаваемой информации в каналах с ошибками типа «стирание» (erasure channel), когда решение о значении принятого символа не может считаться надежным [1].

Основная часть. В двоичном канале со стираниями передача ведется с помощью двух сигналов (0 и 1). Приемник способен каким-либо образом достоверно распознать часть принятых символов, а оставшаяся часть принятых символов может быть объявлена недостоверной или стертой, т. е. множество сигналов на выходе канала равно {0, 1, 5"}.

Схема переходных вероятностей канала со стираниями представлена на рис. 1.

Рис. 1. Граф переходных состояний в канале с ошибками типа «стирание»

Каждому переходу двоичных символов на диаграмме приписана переходная вероятность.

- вероятность того, что символ будет объявлен стертым; 1 - Р^ - вероятность достоверного приема символа. Предполагается, что вероятность ошибочного приема символа в данном канале низкая, и поэтому не учитывается.

Традиционно для повышения достоверности доставки сообщений в каналах со стиранием применяются различные методы:

- основанные на использовании обратного канала от получателя к отправителю;

- основанные на помехоустойчивом кодировании информации;

- основанные на совместном использовании корректирующего кода и перемежителя [2].

Классическими кодами, применяемыми для обнаружения и исправления одиночных и групповых ошибок в каналах передачи двоичной информации, являются циклические коды СЯС-г (где г = 4, 8, 16, 32 - длина группы ошибок, исправляемых кодом) и код Рида -Соломона.

Однако у циклического кода CRC-r имеется ограничение: код обнаруживает все группы ошибок длиной r, но количество независимых ошибок должно быть нечетным.

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

Анализ данной проблемы привел к созданию нового класса помехоустойчивых кодов для каналов со стиранием. Новый класс кодов называют классом фонтанных кодов (Digital Fountain Codes), или rateless-кодами [3]. Кодами из этого класса можно закодировать сообщение конечного размера потенциально-неограниченным потоком (фонтаном) независимых пакетов. Первый случайный фонтанный код изобрел Michael Luby в 1998 г. [3].

На рис. 2 приведен пример кодирования, используя LT-код. Пусть размер передаваемых пакетов L = 3. Тогда для кодирования исходного сообщения размером K = 9 на стороне отправителя происходит накопление трех исходных пакетов.

Исходное сообщение

1 0 1 0 1 1 0 1 1

\ \ ч ё >< / > /

1 0 1

Закодированное сообщение Рис. 2. Пример кодирования

Алгоритм кодирования случайного фонтанного кода происходит в три этапа:

1. Используя распределение вероятностей степеней р(^), выбирается количество исходных символов ^ (степень кодового символа), вовлеченных в операцию кодирования для генерации кодового символа хг-.

2. Из сообщения, состоявшего из К исходных символов, случайным образом выбираются ^ символов.

3. Сложением бит этих исходных символов по модулю 2 (операция ХОЯ) формируется кодовый символ х;.

Процесс формирования кодовых символов продолжается до тех пор, пока не будет получено сообщение от приемника о достоверном приеме сообщения, либо отправитель сам принимает решение о прекращении процесса кодирования, руководствуясь принципом достаточности. Поскольку декодеру не важен порядок передачи кодовых символов и время формирования каждого пакета постоянно, кодер такого класса по запросу всегда может добавить «на лету» небольшое число кодовых пакетов [3].

Алгоритм декодирования предполагает наличие информации от кодера о степени каждого кодового символа ^ и списке номеров исходных символов. Эта информация может быть передана декодеру в заголовке сообщения либо вычислена на стороне приемника при синхронизации его с отправителем и использовании идентичных генераторов случайных чисел.

На приемнике процесс декодирования начинается с приема первого пакета и проходит в несколько этапов:

1. Находится кодовый символ х со степенью di = 1 (рис. 3). Если такого символа нет, декодирование прерывается на этом шаге (декодер заявляет об отказе от декодирования).

Декодированное сообщение

Рис. 3. Первый этап декодирования

2. Устанавливается s]- = xi, тем самым находится ]-й символ (рис. 4).

Декодированное сообщение

1

0 1 Принятое сообщение Рис. 4. Второй этап декодирования

144

Ю. О. Булова

3. Удаляются копии у-го символа из всех кодовых символов: хг = хг - 8 у (рис. 5).

Декодированное сообщение

Этим требованиям отвечает распределение:

0

Принятое сообщение Рис. 5. Третий этап декодирования

4. Удаляются все ребра графа, идущие от найденного символа. В результате номер ' удаляется из всех списков номеров кодовых символов, понижая степень соответствующих кодовых символов: = -1 (рис. 6).

Декодированное сообщение

0

V

1

Принятое сообщение Рис. 6. Четвертый этап декодирования

5. Осуществляется переход к шагу 1, если не все К символов декодированы.

Таким образом, условие р(1) > 0 является обязательным для старта алгоритма декодирования. Идеальное вероятностное распределение, при котором после каждой итерации декодирования в графе оставался бы один кодовый символ степенью 1, имеет вид

p,(d) =

при d = 1,

1

d

при d = 2, 3, ..., K.

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

x(d) =

Kd

при

= 1, 2, ..., —

K —:

— • In f J

K • n i 5

при d=—

к —'

0

K

при d >—, —

где S = c • ln(K / 5) • VK - число исходных символов, хоть один раз входящих в кодовые символы степени d = K / S; c - параметр, величина которого 0 < c < 1; 5 - вероятность неудачного декодирования.

Компромисс между использованием двух распределений разрешается путем использования параметрического распределения LT-кода (3), имеющего название робастное распределение (Robust Soliton Distribution):

p(d) =

^

где 2 - нормирующий множитель вероятностного распределения.

Стоимость декодирования оказывается порядка 1п( К / 5) операций ХОЯ [3].

Произведены исследования исправляющей способности ЬТ-кода относительно длины исходной последовательности бит (при 5% потерянных данных и скорости кода Яс = 0,7-0,95). Результаты приведены на рис. 7. Из графически представленной зависимости видно, что наибольшая исправляющая способность кода наблюдается при длине исходной последовательности 1000 бит.

100 98 96 94 92 90 88 86

Rc = 0,95 Rc = 0,9 Rc = 0,8 Rc = 0,7

^ 100 1000 10 000

Длина исходной последовательности, бит

Рис. 7. Зависимость исправляющей способности ЬТ-кода от длины исходной последовательности

Также были выполнены исследования восстанавливающей способности ЬТ-кода относительно количества потерянных данных при длине исходной последовательности бит от 100 до 5000 бит и скорости кода Яс = 0,9 (рис. 8).

Из приведенной ниже зависимости видно, что при количестве стираний, превышающем 8% от исходного сообщения, при скорости кода Яс = 0,9 значительно уменьшается восстанавливающая способность ЬТ-кода, поэтому целесообразно снижать скорость кода (рис. 9).

У. 1 00

к к (D 4 й ^ 5 § й 95

90

о ¡3 о И о к « а н ч и 85 80

(D Я о & 75 0

100 — 500 - 1000 5000

10

15

Рис. 8. Зависимость исправляющей способности ЬТ-кода от количества потерянных данных

На рис. 9 показана зависимость способности восстановления потерянных пакетов от скорости кода при 15% потерянных данных. Таким образом, при таком количестве ошибок типа «стирание» целесообразно использовать код с избыточностью не менее 20%.

0,7 0,75 0,8 0,85 0,9 0,95 1 Скорость кода

Рис. 9. Зависимость исправляющей способности ЬТ-кода от скорости кода

В 2003 г. А. 8Ьокго11аЫ разработал Яар1юг-код, который представляет собой каскадную конструкцию с внутренним ЬТ-кодом и внешним блоковым кодом с фиксированной скоростью. В 2002 г. М. Маушоипкоу независимо от создателей ЬТ- и Кар1юг-кодов разработал ОпНпе-код, который также представляет каскадную конструкцию, однако в качестве внутреннего кода используется код с отличным от ЬТ-кода вероятностным распределением. С 2008 г. К. В. Шинкаренко и А. М. Кориков ведут разработку неслучайных стирающих кодов, которые призваны уменьшить объем потерь при 1Р-телевещании [4].

Алгоритмы, связанные с рассмотренными кодами, защищены большим количеством патентов и используются в таких программно -аппаратных изделиях для компьютерных сетей, как Digital Fountain Multicast Client, DF Rap-torfor Streaming, DF Broadcast. Код Raptor применяется в стандарте DVB-H.

Заключение. Рассмотрены кодовые методы с фиксированной скоростью, а также rateless-коды, направленные на исправление ошибок типа «стирание» в каналах передачи двоичной информации. Классические коды показывают хорошие результаты в исправлении пакетных ошибок некоторой кратности, однако имеют сложные и ресурсоемкие алгоритмы кодирования и декодирования.

Коды, относящиеся к классу фонтанных кодов, обладают как преимуществами, так и недостатками. Они имеют простые и быстрые алгоритмы кодирования и декодирования, принципиально не зависящие от размера пакета; могут быть использованы в любом канале со стираниями, независимо от статистики стираний; позволяют на практике получать результаты, близкие к предельным возможностям помехоустойчивого кодирования, однако эффективны лишь при больших объемах данных. К недостаткам применения фонтанных кодов следует отнести неизбежность буферизации относительно большого объема данных как на передатчике, так и на приемнике; необходимость синхронизации отправителя и получателя для генерации случайных чисел либо передача дополнительной информации по каналу. Следует также учитывать, что данные коды не эффективны в каналах, где помимо ошибок типа «стирание» встречаются ошибочные приемы символов.

Литература

1. Гладких, А. А. Основы теории мягкого декодирования избыточных кодов в стирающем канале связи / А. А. Гладких. - Ульяновск: Ул-ГТУ, 2010. - 380 с.

2. Gorbunova, Yu. W-ciclic method interleaving of data for communication system / Yu. Gorbunova, P. Urbanovich // News electrical and electronic technologies and their industrial implementation: proc. VII International Conference, Zakopane, Poland, June 28 - July 1, 2011. - Zakopane, 2011. - P. 149.

3. Варгаузин, В. Помехоустойчивое кодирование в пакетных сетях / В. Варгаузин // ТелеМультиМедиа. - 2005. - № 3. - С. 10-16.

4. Шинкаренко, К. В. Применение неслучайных стирающих кодов в IP телевещании / К. В. Шинкаренко, А. М. Кориков // Известия Томского политехнического университета. -2008. - Т. 313, № 5. - С. 42-46.

Поступила 28.02.2012