Использование LDPC-кодов

УДК 621.396.6.001.63

ИСПОЛЬЗОВАНИЕ LDPC-КОДОВ

Л.Н. Коротков, А.В. Башкиров, И.В. Свиридова

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

Ключевые слова: LDPC-код, стандартDVB, проверочная матрица

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

помехоустойчивых кодов.

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

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

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

Коротков Леонид Николаевич - ВГТУ, д-р физ.-мат. наук, профессор, тел. (473) 243-77-06, e-mail: kipr@vorstu.ru Башкиров Алексей Викторович- ВГТУ, канд. техн. наук, доцент, тел. (473) 243-77-06, e-mail: kipr@vorstu.ru Свиридова Ирина Владимировна - ВГТУ, аспирант, (473) 243-77-06, e-mail: kipr@vorstu.ru

LDPC-коды представляют собой линейные блоковые коды, задаваемые с помощью проверочной матрицы. Данные коды лучше всего представлять с помощью графа Таннера, так как в этом графе для представления строк и столбцов матрицы используются битовые и проверочные узлы, которые связаны между собой определенным образом.

LDPC-коды впервые были предложены Р. Галлагером, поэтому часто их называют кодами Галлагера. На данный момент LDPC - коды являются наиболее эффективными. Это особенно заметно при большой длине кода и при малой вероятности ошибки декодирования. [1].

Эти коды были позабыты вследствие сложности в реализации кодеров и декодеров. В дальнейшем с формированием телекоммуникационных технологий вновь вырос интерес к передаче информации с минимальным количеством ошибок. Не смотря на всю свою сложность LDPC-коды, в связи с отсутствием преград к использованию, стали наиболее привлекательными для

телекоммуникационной отрасли. LDPC-код, вместо турбо-кода, стал частью стандарта DVB-S2 спутниковой передачи данных для цифрового телевидения и также LDPC-код вошел в стандарт IEEE 802.3an сети Ethernet 10G. Аналогичная замена произошла и в стандарте DVB-T2 для цифрового наземного телевизионного вещания [2].

Можно отметить следующие

преимущества LDPC-кодов, которые были выделены в результате исследования среди кодов для включения в стандарт DVB-S2:

- отставание от границы Шеннона всего на 0,6-0,8 дБ;

- преимущество на 0,3 дБ по сравнению с турбо-кодом;

-преимущество на 2,5-3,0 дБ, т.е. 30-процентный прирост в мощности, по сравнению со стандартом DVB-S [3].

Стандарт DVB, принятый в Европе, включает набор спецификаций, охватывающих

кабельное DVB-C (cable), спутниковое DVB-S (satellite) и наземное DVB-T (terrestrial) вещание. Например, в стандарте DVB-T2, требования которого наиболее жесткие, в качестве корректирующего кода используется каскадный код (в отличие от стандарта DVB-T, принципиально отличающегося от системы 8T-VSB только способом модуляции). В качестве внешнего кода в нем применен блоковый код Боуза-Чоудхури - Хоквингема (БЧХ, ВСН), в качестве внутреннего -низкоплотностный код с проверкой на четность. В зависимости от скорости кодирования (1/2, 3/5, 2/3, 3/4, 4/5, 5/6) LDPC, размер входного блока данных для БЧХ-кодера может быть различным (Kbch от 32208 бит до 53840 бит; KMpc от 32400 бит до 54000 бит), но выходной размер кодового слова после LDPC всегда составляет 64800 бит [3].

В 1948 году Клод Шеннон поставил перед собой проблему, которую возможно решить только при построении системы коммуникации и опубликовал свою работу по теории передачи информации. Вследствие этой работы была получена теорема о передачи информации для канала с шумами, которая формулируется следующим образом: вероятность ошибки передачи по каналу можно свести к минимуму, если выбрать достаточно большую длину ключевого слова, т.е. единицы информации передаваемой по каналу. Главной идеей теории передачи информации является возможность сравнивать переданную и принятую информацию [2].

При передаче информации её поток разбивается на блоки определённой длины, которые кодируются в блоки, называемыми ключевыми словами. Далее ключевые слова передаются по каналу с искажениями. Далее декодер принимает ключевые слова и преобразует их в поток информации, исправляя ошибки передачи.

Также как и у любой теоремы есть свои плюсы и минусы, в теореме Шеннона невозможно эффективно организовать процесс кодирования и декодирования информации с большой длиной ключевых слов. В свою очередь можно предположить, что в кодере и декодере существуют таблицы соответствия, находящиеся между входным блоком информации и соответствующим кодовым словом, но такие таблицы будут занимать много места. Для двоичного симметричного канала без памяти количество различных блоков составляет 2n, где n - количество нулей или единиц, которые будут преобразовываться в одно кодовое слово. Для 8 бит это 256 блоков

информации, каждый из которых содержит в себе соответствующее кодовое слово. Причём кодовое слово, обычно большей длины, так как содержит в себе дополнительные биты для защиты от ошибок передачи данных. Следовательно, одним из способов кодирования является использование проверочной матрицы, которая позволяет за одно математическое действие (умножение строки на матрицу) выполнить декодирование кодового слова [5].

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

LDPC-коды описываются проверочной матрицей, которая содержит в основном нули и малое количество единиц. В частности, у (п, _), ф LDPC-кода, проверочная матрица имеет п строк (что соответствует длине кодового слова), каждый столбец матрицы содержит малое определенное количество единиц _), и каждая строка - k единиц. На практике используются матрицы с довольно большой численностью элементов - от 10 до 100 тысяч строк, однако численность единиц в строке, либо в столбце остаётся довольно малым, обычно наименьшим 10. Коды с той же численностью элементов на строку либо столбец, но с большим размером, обладают лучшими характеристиками [5].

Можно выполнить декодирование, используя итерационное декодирование в блочном коде, так как матрица проверки на четность кода LDPC имеет очень малый вес. Доказано, что по своим рабочим характеристикам процесс итерационного декодирования кода LDPC с использованием схемы передачи потока приближается к процессу итерационного декодирования турбо-кода [4].

Для генерирования кода LDPC с высокими рабочими характеристиками должны удовлетворяться следующие условия:

1. Отличительной чертой матрицы LDPC-кода является отсутствие циклов определённого размера. Цикл относится к петле, которая в свою очередь формируется ребрами, объединяющими переменные узлы с проверочными узлами на факторном графе кода LDPC, и длина этого цикла определяется, как численность ребер, составляющих петлю. Если количество ребер, соединяющих переменные узлы с проверочными узлами и составляющими петлю в факторном графе кода

LDPC - велико, то это цикл с большой длиной. В таком случае цикл с малой длиной означает, что количество ребер мало. Эффективность рабочей характеристики кода LDPC возрастает только тогда, когда циклы в факторном графе кода LDPC становятся более длинными. Если длинные циклы генерируются в факторном графе кода LDPC, то становится возможным предотвратить ухудшение рабочих

характеристик. Приведем пример, когда слишком много циклов с короткой длиной существуют в факторном графе кода LDPC, возникает минимальный уровень ошибок.

2. Если сравнить LDPC-код со сверточным кодом или турбо-кодом, то при помощи первого, очень трудно выполнить кодирование в режиме реального времени, т. к. слишком высокая сложность кодирования, поэтому следует учитывать эффективное кодирование LDPC-кода. Для того чтобы уменьшить сложность кодирования кода LDPC был предложен код повторного накопления, но этот код также обладает ограничением в отношении уменьшения сложности кодирования кода LDPC.

3. Если сопоставить нерегулярный код LDPC с регулярным кодом LDPC , то видно, что нерегулярный код LDPC обладает более высокими характеристиками, это значит, что надо учитывать распределение степени на факторном графе LDPC-кода. Это можно объяснить с другой стороны, известно, что факторный граф нерегулярного кода LDPC имеет различные степени. Термин «степень» это количество ребер, соединенных с переменными узлами и проверочными узлами на факторном графе кода LDPC. Фраза «степень распределения» означает отношение количества узлов, имеющих конкретную степень, к общему количеству узлов. Доказано, что код LDPC, имеющий конкретную степень распределения, обладает исключительными рабочими характеристиками. Возможно, улучшить рабочие характеристики LDPC-кода при высокоскоростной передаче данных. Код LDPC позволяет эффективно исправлять ошибки, создаваемые шумами, генерируемыми в канале передачи, повышая, таким образом, надежность передачи данных, следовательно, он является более предпочтительным. Но также код LDPC обладает и худшими характеристиками с учетом кодовой скорости, поскольку код LDPC имеет относительно высокую кодовую скорость и, в тоже время, он не является свободным с точки зрения кодовой скорости [4].

Описание LPDC-кода возможно несколькими способами:

- проверочной матрицей;

- двудольным графом.

LPDC-код, как и любой линейный блоковый код, как было сказано раньше, описывается проверочной матрицей, но при использовании на практике предпочитают описание в виде двудольного графа Танстола, который содержит в себе информацию о парах индексов строк и столбцов, на пересечении которых есть единица. Также, если используются специальные случаи построения LDPC-кодов, могут использоваться и специальные способы задания матриц [6].

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

основанных, например, на группах и конечных полях.

Одним из основных недостатков LDPC кодов является зависимость сложности кодирования от длины кода. Практическая реализация LDPC кодов обычно бывает сложной и не позволяет простого изменения кодовой скорости и длины блока, потому что придется формировать новую проверочную матрицу. Развитие каналов связи, влекущее за собой уменьшение количества ошибок, а также все увеличивающиеся объемы передаваемой информации открывают широкие перспективы для дальнейшего внедрения и использования LDPC-кодов[8].

Инновационные исследования в основном ориентированы на создание LDPC-кодов с улучшенными характеристиками, а также на создание методов их декодирования. Для таких кодов также формируются и развиваются особые методы декодирования и ускоренного декодирования с приемлемыми потерями в вероятности декодирования, и они показывают хорошие результаты. Очевидно, что вопросы реализации кодирования сохранятся в будущем и требования, наиболее, простой реализации декодеров будут все более актуальными. При реализации кодирования самыми дешевыми окажутся только те алгоритмы, которые будут выполнять самые простые и быстрые операции. Этим требования и удовлетворяют LDPC-коды, по сравнению с другими кодами [7].

Развитие, которое еще предстоит LDPC-кодам, в рамках данной проблематики, заключается в отработке передовых

алгоритмических решений в области кодирования и декодирования, а также в эмпирической проверке итогов современных теоретических исследований в данной области.

Литература

1. Галлагер Р. «Теория информации и надёжная связь» - М.: «Советское радио», 1974.

2. Золотарев В.В., Овечкин Г. В. Обзор исследований и разработок методов помехоустойчивого кодирования, Москва, 2004. - 126 с.

3. Башкиров, А. В. Основы помехоустойчивого кодирования, основные преимущества и недостатки алгоритмов декодирования [Текст]/А. В. Башкиров,И. В. Остроумов, И. В. Свиридова // Вестник Воронежского государственного технического университета. - 2012.- Т. 8. - № 2. - С. 20-22.

4. Воробьев К. А. Методы построения и декодирования недвоичных низкоплотностных кодов // Теория и практика системного анализа. 2010. Т. II. С. 96102.

5.Золотарев В.В., Овечкин Г.В. Эффективные алгоритмы помехоустойчивого кодирования для цифровых систем связи // Электросвязь. 2003. № 9. С. 3437.

6.http://www. fmdpatent.ru/patent/231 /2310274 .html

7. Shannon C.E. A Mathematical Theory of Communication // Bell System Technical Journal. — 1948. — Т. 27. — С. 379-423, 623-656.

8.Башкиров, А. В. Преимущество параллельных алгоритмов цифровой обработки сигналов над последовательными алгоритмами при реализации на ПЛИС [Текст] / А. В. Башкиров, А. В. Муратов // Вестник Воронежского государственного технического университета. - 2012. - Т. 8. - № 1. - С. 89 - 92.

Воронежский государственный технический университет

USING LDPC-CODES L.N. Korotkov, A.V. Bashkirov, I.V. Sviridova

This article provides an overview of codes with low-density parity-check. Review made in the context of coding information, the recommended standards governing the implementation of appropriate technologies. The description of the LPDC-code in several ways

Key words: LDPC code, DVB, test matrix