Устройство и способ для кодирования и декодирования блочных кодов с низкой плотностью контроля по четности с переменной скоростью кодирования
Иллюстрации
Показать всеИзобретение относится к мобильной связи и может быть использовано для кодирования и декодирования блочных кодов с низкой плотностью контроля по четности (LDPC-кодов), обладающих переменной скоростью кодирования. Технический результат - повышение надежности передачи данных. Устройство и способ для кодирования блочного кода с низкой плотностью контроля по четности (LDPC-кода), обладающего переменной скоростью кодирования. Устройство принимает информационное слово и кодирует информационное слово в блочный LDPC-код на базе одной из первой матрицы контроля по четности и второй матрицы контроля по четности в зависимости от скорости кодирования, подлежащей применению при формировании информационного слова в блочный LDPC-код. 4 н. и 101 з.п. ф-лы, 25 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится, в общем, к системе мобильной связи и, в частности, к устройству и способу для кодирования и декодирования блочных кодов с низкой плотностью контроля по четности (LDPC-кодов), обладающих переменной скоростью кодирования.
Уровень техники
В условиях быстрого развития мобильных систем связи необходимо разрабатывать технологию, способную к передаче больших массивов данных с приближением к пропускной способности проводной сети даже в беспроводной среде. Для удовлетворения растущей потребности в высокоскоростной высокопроизводительной системе связи, способной обрабатывать и передавать разнообразные данные, например, изображения и радиоданные, помимо службы речевой связи важно повысить эффективность передачи системы путем применения соответствующей схемы канального кодирования для повышения тем самым общей производительности системы. Однако мобильная система связи вследствие ее характеристик неизбежно порождает ошибки во время передачи данных в результате шумов, помех и затухания в зависимости от состояния канала. Порождение ошибок вызывает потерю большого количества информационных данных.
Для предотвращения потери информационных данных из-за порождения ошибок в настоящее время применяют разнообразные схемы защиты от ошибок, частично основанные на характеристиках канала, для повышения, тем самым, надежности мобильной системы связи. Наиболее характерная схема защиты от ошибок использует коды с коррекцией ошибок.
На фиг.1 представлена схема, иллюстрирующая структуру передатчика/приемника в традиционной системе мобильной связи. Как видно из фиг.1, передатчик 100 содержит кодер 111, модулятор 113 и радиочастотный (RF) процессор 115, и приемник 150 содержит RF-процессор 151, демодулятор 153 и декодер 155.
В передатчике 100 передаваемые информационные данные «u» после их генерации подаются в кодер 111. Кодер 111 формирует кодированный символ «c» кодированием информационных данных «u» по заданной схеме кодирования и выдает кодированный символ «c» в модулятор 113. Модулятор 113 формирует модулированный символ «s» модулированием кодированного символа «c» по заданной схеме модуляции и выдает модулированный символ «s» в RF-процессор 115. RF-процессор 115 выполняет радиочастотную (RF) обработку модулированного символа «s», выданного модулятором 113, и передает RF-обработанный сигнал в эфир через антенну ANT.
Сигнал, передаваемый в эфир передатчиком 100 описанным способом, принимается в приемник 150 посредством его антенны ANT, и сигнал, принятый антенной, подается в RF-процессор 151. RF-процессор 151 выполняет RF-обработку принятого сигнала и выдает RF-обработанный сигнал «r» в демодулятор 153. Демодулятор 153 демодулирует RF-обработанный сигнал «r», выданный из RF-процессора 151, с применением схемы демодуляции, соответствующей схеме модуляции, применяемой в модуляторе 113, и выдает демодулированный сигнал «x» в декодер 155. Декодер 155 декодирует демодулированный сигнал «x», выданный из демодулятора 153, с применением схемы декодирования, соответствующей схеме кодирования, применяемой в кодере 111, и выдает декодированный сигнал «» в виде окончательно декодированных информационных данных.
Чтобы приемник 150 безошибочно декодировал информационные данные «u», переданные передатчиком 100, требуются высокопроизводительные кодер и декодер. В частности, так как необходимо учитывать среду радиоканала из-за характеристик мобильной системы связи, следует более внимательно учитывать ошибки, которые могут порождаться воздействием среды радиоканала.
К наиболее характерным кодам с коррекцией ошибок относятся турбокоды и коды с низкой плотностью контроля по четности (LDPC-коды).
Общеизвестно, что турбокод превосходит по выигрышу в производительности сверточный код, который обычно применяют для коррекции ошибок во время высокоскоростной передачи данных. Турбокод обладает таким преимуществом, что может эффективно исправить ошибку, вызванную шумом, создаваемым в канале передачи и, тем самым, повысить надежность передачи данных. LDPC-код можно декодировать с применением итеративного декодирующего алгоритма суммы-произведения в фактор-графе. Так как декодер для LDPC-кода использует итеративный декодирующий алгоритм на основе алгоритма суммы-произведения, то он менее сложен, чем декодер для турбо-кода. Кроме того, декодер для LDPC-кода легче реализуем декодером параллельной обработки по сравнению с декодером турбо-кода.
Теорема Шеннона о канальном кодировании показывает, что надежная связь возможна только со скоростью передачи данных, не превышающей пропускную способность канала связи. Однако теорема Шеннона о канальном кодировании не предлагает детализированного способа канального кодирования/декодирования для поддержки скорости передачи данных на уровне вплоть до максимального предела пропускной способности канала связи. Как правило, хотя случайный код с очень большой длиной блоков характеризуется производительностью, приближающейся к предельной пропускной способности канала связи по теореме Шеннона о канальном кодировании, когда применяют способ декодирования MAP (по максимальной апостериорной вероятности) или ML (по максимальной вероятности), реализовать способ декодирования фактически невозможно ввиду большого объема связанных с ним вычислений.
Турбокод предложен авторами Берроу (Berrou), Главе (Glavieux) и Титимадзима в 1993 г. и показывает высокую производительность, которая приближается к предельной пропускной способности канала связи по теореме Шеннона о канальном кодировании. Предложение турбокода явилось толчком к активным исследованиям итеративного декодирования и графического выражения кодов, и в центре внимания исследований вновь оказались LDPC-коды, предложенные Галагером (Gallager) в 1962 г. В фактор-графе турбокода и LDPC-кода присутствуют циклы, и общеизвестно, что итеративное декодирование в фактор-графе LDPC-кода, в котором существуют циклы, является близким к оптимальному. Кроме того, экспериментально доказано, что LDPC-код обладает высокой производительностью при итеративном декодировании. Известно, что LDPC-код, обладающий максимальной производительностью, всегда показывает характеристики с разностью, приблизительно, 0,04 [дБ] на предельной пропускной способности канала по теореме Шеннона о канальном кодировании, при частоте появления ошибочных битов (BER) 10-5, с использованием блоков с размером 107. Кроме того, хотя LDPC-код, определенный в поле Галуа (GF) с q>2, т.е. GF(q), усложняется с точки зрения процесса его декодирования, он намного превосходит двоичный код по производительности. Однако удовлетворительного теоретического описания успешного декодирования по итеративному декодирующему алгоритму для LDPC-кода, определенного в GF(q), не существует.
LDPC-код, предложенный Галлагером, определен при посредстве матрицы контроля по четности, в которой основные элементы имеют значение 0, и неосновные элементы, кроме элементов, имеющих значение 0, имеют ненулевое значение, например, значение 1. В последующем описании будет принято, что ненулевое значение равно значению 1.
Например, LDPC-код (N, j, k) является линейным блочным кодом с длиной N блока и определен разреженной матрицей контроля по четности, в которой каждый столбец содержит j элементов со значением 1, каждая строка содержит k элементов со значением 1, и все элементы, кроме элементов со значением 1, имеют значение 0.
LDPC-код, в котором вес каждого столбца в матрице контроля по четности имеет фиксированное значение «j», и вес каждой строки в матрице контроля по четности имеет фиксированное значение «k», как описано выше, называется «регулярным LDPC-кодом». В данном случае, термин «вес» относится к числу элементов с ненулевым значением среди элементов, составляющих матрицу контроля по четности. В отличие от регулярного LDPC-кода LDPC-код, в котором вес каждого столбца в матрице контроля по четности и вес каждой строки в матрице контроля по четности не фиксированы, называется «иррегулярным LDPC-кодом». Общеизвестно, что иррегулярный LDPC-код превосходит регулярный LDPC-код по производительности. Однако в случае иррегулярного LDPC-кода, поскольку вес каждого столбца и вес каждой строки в матрице контроля по четности не фиксированы, т.е. являются иррегулярными, вес каждого столбца в матрице контроля по четности и вес каждой строки в матрице контроля по четности должны подвергаться надлежащей коррекции, чтобы гарантировать превосходящую производительность.
На фиг.2 представлена схема, иллюстрирующая матрицу контроля по четности обычного LDPC-кода (8, 2, 4). Как видно из фиг.2, матрица H контроля по четности LDPC-кода (8, 2, 4) состоит из 8 столбцов и 4 строк, в которой вес каждого столбца имеет фиксированное значение 2, и вес каждой строки имеет фиксированное значение 4. Поскольку вес каждого столбца и вес каждой строки в матрице контроля по четности являются регулярными, как указано выше, LDPC-код (8, 2, 4), показанный на фиг.2, становится регулярным LDPC-кодом.
На фиг.3 представлена схема, иллюстрирующая фактор-граф LDPC-кода (8, 2, 4), показанного на фиг.2. Как видно из фиг.3, фактор-граф LDPC-кода (8, 2, 4), состоит из 8 переменных вершин x1 300, x2 302, x3 304, x4 306, x5 308, x6 310, x7 312 и x8 314 и 4 проверочных вершин 316, 318, 320 и 322. Когда элемент со значением 1, т.е. ненулевым значением, присутствует в точке, где пересекаются i-тая строка и j-тый столбец матрицы контроля по четности LDPC-кода (8, 2, 4), создается ветвь между переменной вершиной xj и j-й проверочной вершиной.
Поскольку матрица контроля по четности LDPC-кода имеет очень малый вес, как описано выше, то декодирование можно выполнить итеративным декодированием даже в блочном коде, имеющим относительно большую длину, который имеет производительность, приближающуюся к предельной пропускной способности канала связи по теореме Шеннона о канальном кодировании, например, в турбокоде, при непрерывном увеличении длины блока блочного кода. Мак-Кей (MacKay) и Нил (Neal) показали, что итеративный процесс декодирования LDPC-кода с использованием схемы передачи потока приближается по производительности к итеративному декодированию турбокода.
Для генерации высокоэффективного LDPC-кода необходимо выполнить следующие условия.
(1) Следует рассмотреть циклы на фактор-графе LDPC-кода.
Термин «цикл» относится к петле, образованной ребрами, соединяющими переменные вершины с проверочными вершинами в фактор-графе LDPC-кода, и длина цикла определяется как число ребер, составляющих петлю. Длинный цикл означает большое число ребер, соединяющих переменные вершины с проверочными вершинами и составляющих петлю в фактор-графе LDPC-кода. Напротив, короткий цикл означает небольшое число ребер, соединяющих переменные вершины с проверочными вершинами и составляющих петлю в фактор-графе LDPC-кода.
Когда циклы в фактор-графе LDPC-кода становятся длиннее, эффективность действия LDPC-кода возрастает по следующим причинам. То есть, когда в фактор-графе LDPC-кода формируются длинные циклы, можно предотвратить снижение производительности, например, появление минимального уровня ошибок, когда на фактор-графе LDPC-кода присутствует слишком много циклов небольшой длины.
(2) Следует рассмотреть эффективное кодирование LDPC-кода.
LDPC-код с большим трудом поддается кодированию в реальном времени в сравнении со сверточным кодом или турбокодом ввиду высокой сложности его кодирования. Чтобы снизить сложность кодирования LDPC-кода, предложен код с повторением и накоплением (RA-код). Однако RA-код ограничен по снижению сложности кодирования LDPC-кода. Поэтому следует принять во внимание эффективное кодирование LDPC-кода.
(3) Следует рассмотреть распределение степеней в фактор-графе LDPC-кода.
Иррегулярный LDPC-код, как правило, превосходит по производительности регулярный LDPC-код, поскольку фактор-граф LDPC-кода обладает различными степенями. Термин «степень» относится к числу ребер, соединенных с переменными вершинами и проверочными вершинами в фактор-графе LDPC-кода. Кроме того, формулировка «распределение степеней» на фактор-графе LDPC-кода относится к отношению числа вершин с конкретной степенью к общему числу вершин. Как показано Ричардсоном (Richardson), LDPC-код с особым распределением степеней обладает особенно высокой производительностью.
На фиг.4 представлена схема, иллюстрирующая матрицу контроля по четности традиционного блочного LDPC-кода. До описания фиг.4 следует отметить, что блочный LDPC-код является новым LDPC-кодом, для которого рассмотрены вопросы не только эффективного кодирования, но также эффективного хранения и повышения производительности матрицы контроля по четности, и блочный LDPC-код является LDPC-кодом, расширенным обобщением структуры регулярного LDPC-кода. Как видно из фиг.4, матрица контроля по четности блочного LDPC-кода разбита на множество частичных блоков, и перестановочная матрица отображается в каждый из частичных блоков. На фиг.4 «P» представляет перестановочную матрицу с размерностью Ns×Ns, и верхний индекс (или порядок) apq перестановочной матрицы P составляет либо 0 ≤ apq ≤ Ns-1, либо apq=∞.
Кроме того, «p» указывает, что соответствующая перестановочная матрица расположена в p-той строке частичных блоков матрицы контроля по четности, и «q» указывает, что соответствующая перестановочная матрица расположена в q-ом столбце частичных блоков матрицы контроля по четности. То есть, означает перестановочную матрицу, расположенную в частичном блоке, в котором пересекаются p-ая строка и q-тый столбец матрицы контроля по четности, состоящей из множества частичных блоков. То есть, «p» и «q» представляют, соответственно, число строк и число столбцов частичных блоков, соответствующих информационной части в матрице контроля по четности.
На фиг.5 представлена схема, иллюстрирующая перестановочную матрицу P, показанную на фиг.4. Как показано на фиг.5, перестановочная матрица P является квадратной матрицей с размерностью Ns×Ns, и каждый из Ns столбцов, составляющих перестановочную матрицу P, имеет вес 1, и каждая из Ns строк, составляющих перестановочную матрицу P, также имеет вес 1. В настоящем описании, хотя размерность перестановочной матрицы P выражена в виде Ns×Ns, она будет также выражаться в виде Ns, поскольку перестановочная матрица P является квадратной матрицей.
На фиг.4 перестановочная матрица P с верхним индексом apq=0, т.е. перестановочная матрица P0, представляет собой единичную матрицу , и перестановочная матрица P с верхним индексом apq=∞, т.е. перестановочная матрица P∞, представляет собой нулевую матрицу. В настоящем описании, представляет собой единичную матрицу с размерностью Ns×Ns.
В полной матрице контроля по четности блочного LDPC-кода, показанной на фиг. 4, поскольку общее число строк равно Ns×p, и общее число столбцов равно Ns×q (при p ≤ q), когда полная матрица контроля по четности блочного LDPC-кода имеет полный ранг, скорость кодирования можно выразить уравнением (1), независимо от размера частичных блоков.
… (1)
Если apq≠∞ для всех p и q, перестановочные матрицы, соответствующие частичным блокам, не равны нулевым матрицам, и частичные блоки составляют регулярный LDPC-код, в котором весовое значение каждого столбца и весовое значение каждой строки в каждой из перестановочных матриц, соответствующих частичным блокам равны, соответственно, p и q. В настоящем описании, каждая из перестановочных матриц, соответствующих частичным блокам, будет упоминаться как «частичная матрица».
Так как в полной матрице контроля по четности существует (p-1) зависимых строк, скорость кодирования выше, чем скорость кодирования, вычисленная по уравнению (1). В случае блочного LDPC-кода, если определена весовая позиция первой строки каждой из частичных матриц, составляющих полную матрицу контроля по четности, то можно определить весовые позиции остальных (Ns-1) строк. Поэтому потребный размер памяти уменьшается до 1/Ns по сравнению со случаями, когда веса выбираются нерегулярно для хранения информации о полной матрице контроля по четности.
Как упоминалось выше, термин «цикл» относится к петле, сформированной ребрами, соединяющими переменные вершины с проверочными вершинами в фактор-графе LDPC-кода, и длина цикла определяется как число ребер, составляющих петлю. Длинный цикл предполагает большое число ребер, соединяющих переменные вершины с проверочными вершинами и составляющих петлю в фактор-графе LDPC-кода. Когда циклы в фактор-графе LDPC-кода становятся длиннее, эффективность действия LDPC-кода возрастает.
Напротив, когда циклы в фактор-графе LDPC-кода становятся короче, способность LDPC-кода к коррекции ошибок уменьшается из-за снижения производительности, например, появления минимального уровня ошибок. То есть, когда существует много циклов с короткой длиной в фактор-графе LDPC-кода, информация о конкретной вершине, принадлежащей циклу с короткой длиной, начиная с нее, возвращается после небольшого числа итераций. Когда число итераций возрастает, информация возвращается к соответствующей вершине более часто, так что информацию невозможно правильно корректировать, что вызывает снижение способности LDPC-кода к коррекции ошибок.
На фиг.6 представлена схема, иллюстрирующая циклическую структуру блочного LDPC-кода, матрица контроля по четности которого состоит из 4 частичных матриц. Перед описанием фиг.6 следует отметить, что блочный LDPC-код является новым LDPC-кодом, для которого рассмотрены вопросы не только эффективного кодирования, но также эффективного хранения и повышения производительности матрицы контроля по четности. Блочный LDPC-код является также LDPC-кодом, расширенным обобщением структуры регулярного LDPC-кода. Матрица контроля по четности блочного LDPC-кода, показанная на фиг.6, состоит из 4 частичных блоков, при этом диагональная линия представляет позицию, в которой расположены элементы со значением 1, и участки, отличающиеся от диагонально линованных участков, представляют позиции, в которых расположены элементы со значение 0. Кроме того, «P» представляет такую же перестановочную матрицу, что и перестановочная матрица, описанная в связи с фиг.5.
Для анализа циклической структуры блочного LDPC-кода, показанной на фиг.6, элемент со значением 1, расположенный в I-той строке частичной матрицы Pa, определяется как опорный элемент, и элемент со значением 1, расположенный в i-той строке, будет именоваться «точкой-0». В настоящем описании «частичной матрицей» будет именоваться матрица, соответствующая частичному блоку. Точка-0 расположена в (i+a)-ом столбце частичной матрицы Pa.
Элемент со значением 1 в частичной матрице Pb, расположенный в той же строке, что и точка-0, будет именоваться «точкой-1». По той же причине, что и точка-0, точка-1 расположена в (i+b)-ом столбце частичной матрицы Pb.
Затем элемент со значением 1 в частичной матрице Pc, расположенный в том же столбце, что и точка-1, будет именоваться «точкой-2». Так как частичная матрица Pc является матрицей, получаемой сдвигом соответствующих столбцов единичной матрицы I вправо по модулю Ns на c, точка-2 расположена в (i+b-c)-той строке частичной матрицы Pc.
Кроме того, элемент со значением 1 в частичной матрице Pd, расположенный в той же строке, что и точка-2, будет именоваться «точкой-3». Точка-3 расположена в (i+b-c+d)-ом столбце частичной матрицы Pd.
И, наконец, элемент со значением 1 в частичной матрице Pa, расположенный в том же столбце, что и точка-3, будет именоваться «точкой-4». Точка-4 расположена в (i+b-c+d-a)-той строке частичной матрицы Pa.
В циклической структуре блочного LDPC-кода, показанной на фиг.6, если существует цикл длиной 4, точка-0 и точка-4 расположены в одной позиции. То есть, зависимость между точкой-0 и точкой-4 определяется уравнением (2)
(2)
Уравнение (2) можно переписать в форме уравнения (3)
(3)
В результате, когда выполняется соотношение, заданное уравнением (3), формируется цикл длиной 4. Как правило, когда точка-0 и точка-4p становятся в первый раз идентичными друг другу, получается соотношение и выполняется следующее соотношение, выраженное уравнением (4).
(4)
Другими словами, если положительное целое число, имеющее минимальное значение из положительных целых чисел, удовлетворяющих уравнению (4) для данных a, b, c и d, определить как «p», то цикл с длиной 4p становится циклом с минимальной длиной в циклической структуре блочного LDPC-кода, показанной на фиг.6.
В заключение, как описано выше, для (a-b+c-d)≠0, если выполняется условие gcd(Ns, a-b+c-d)=1, то p = Ns. В настоящем описании, gcd(Ns, a-b+c-d) является функцией для вычисления «наибольшего общего делителя» (gcd) целых чисел Ns и a-b+c-d. Поэтому цикл с длиной 4Ns становится циклом с минимальной длиной.
В качестве способа кодирования для блочного LDPC-кода будет применяться способ Ричардсона - Урбанке (Richardson-Urbanke). Поскольку в качестве способа кодирования применяется способ Ричардсона - Урбанке, сложность кодирования можно минимизировать, когда форма матрицы контроля по четности становится аналогичной форме полной нижнетреугольной матрицы.
На фиг.7 приведена схема, иллюстрирующая матрицу контроля по четности, имеющую форму, схожую с формой полной нижнетреугольной матрицы. Матрица контроля по четности, показанная на фиг.7, отличается от матрицы контроля по четности, имеющей форму полной нижнетреугольной матрицы в форме части контроля по четности. На фиг.7 верхний индекс (или порядок) apq перестановочной матрицы P информационной части составляет либо 0 ≤ apq ≤ Ns-1, либо apq=∞, как описано выше. Перестановочная матрица P с верхним индексом apq=1, т.е. перестановочная матрица P0 информационной части, представляет собой единичную матрицу , и перестановочная матрица P с верхним индексом apq=∞, т.е. перестановочная матрица P∞, представляет собой нулевую матрицу. На фиг.7 «p» представляет число строк частичных блоков, отображаемых в информационную часть, и «q» представляет число столбцов частичных блоков, отображаемых в часть контроля по четности. Кроме того, верхние индексы ap, x и y перестановочных матриц P, отображаемых в часть контроля по четности, представляют порядки перестановочной матрицы P. Однако для удобства объяснения разные верхние индексы ap, x и y применяются для отличия части контроля по четности от информационной части. То есть, на фиг.7, и также являются перестановочными матрицами, и верхние индексы a1 - ap индексируются последовательно соответственно частичным матрицам, расположенным в диагональной части в части контроля по четности. Кроме того, Px и Py также являются перестановочными матрицами, и, для удобства объяснения, они индексируются отличающимся способом для отличия части контроля по четности от информационной части. Если принять, что длина блока блочного LDPC-кода, обладающего матрицей контроля по четности, показанной на фиг.7, равна N, то сложность кодирования блочного LDPC-кода линейно возрастает по отношению к длине N (0(N)) блока.
Самая серьезная проблема для LDPC-кода, обладающего матрицей контроля по четности, показанной на фиг.7, состоит в том, что, если длина частичного блока определена как Ns, то формируется Ns проверочных вершин, степени которых всегда равны 1 в фактор-графе блочного LDPC-кода. Проверочные вершины со степенью 1 не могут влиять на совершенствование производительности на основе итеративного декодирования. Поэтому стандартный иррегулярный LDPC-код на базе способа Ричардсона - Урбанке не содержит проверочной вершины со степенью 1. Поэтому матрица контроля по четности, показанная на фиг.7, будет принята в качестве базовой матрицы контроля по четности для создания такой матрицы контроля по четности, что она обеспечивает возможность эффективного кодирования, несмотря на отсутствие проверочной вершины со степенью 1. В матрице контроля по четности, показанной на фиг.7, состоящей из частичных матриц, выбор частичной матрицы является очень важным фактором для совершенствования производительности блочного LDPC-кода, так что очень важным фактором становится также определение подходящего критерия выбора частичной матрицы.
Для облегчения способа создания матрицы контроля по четности блочного LDPC-кода и способа кодирования блочного LDPC-кода предполагается, что матрица контроля по четности, показанная на фиг.7, выполнена с 6 частичными матрицами, как показано на фиг.8.
На фиг.8 представлена схема, иллюстрирующая матрицу контроля по четности, показанную на фиг.7, которая разбита на 6 частичных блоков. Как видно из фиг.8, матрица контроля по четности блочного LDPC-кода, показанная на фиг.7, разбита на информационную часть «s», первую часть p1 контроля по четности и вторую часть p2 контроля по четности. Информационная часть «s» представляет собой часть матрицы контроля по четности, отображаемую в фактическое информационное слово в процессе кодирования блочного LDPC-кода, подобно информационной части, описанной в связи с фиг.7, но, для удобства объяснения, информационная часть «s» представлена отличающимися условными обозначениями. Первая часть p1 контроля по четности и вторая часть p2 контроля по четности представляют собой часть матрицы контроля по четности, отображаемую в фактическое контрольное слово в процессе кодирования блочного LDPC-кода, подобно части контроля по четности, описанной в связи с фиг.7, и часть контроля по четности разбита на две части.
Частичные матрицы A и C соответствуют частичным блокам A (802) и C (804) информационной части «s», частичные матрицы B и D соответствуют частичным блокам B (806) и D (808) первой части p1 контроля по четности, и частичные матрицы T и E соответствуют частичным блокам T (810) и E (812) второй части p2 контроля по четности. Хотя, на фиг. 8 матрица контроля по четности разбита на 7 частичных блоков, следует отметить, что «0» не является отдельным частичным блоком, и, поскольку частичная матрица T, соответствующая частичному блоку T (810), имеет полную нижне-треугольную форму, участок, где нулевые матрицы расположены на основе диагонали, обозначен «0». Процесс упрощения способа кодирования с использованием частичных матриц информационной части «s», первой части p1 контроля по четности и второй части p2 контроля по четности описан ниже со ссылкой на фиг.10.
На фиг.9 представлена схема, иллюстрирующая транспонированную матрицу частичной матрицы B, показанной на фиг.8, частичную матрицу E, частичную матрицу T и обратную матрицу частичной матрицы T из матрицы контроля по четности, показанной на фиг.7. Как видно из фиг.9, частичная матрица BT представляет собой транспонированную матрицу частичной матрицы B, и частичная матрица T-1 представляет собой обратную матрицу частичной матрицы T. обозначает .
Перестановочные матрицы, показанные на фиг. 9, например, , могут быть единичными матрицами. Как описано выше, если верхний индекс перестановочной матрицы, т.е. a1, равен 0, то будет единичной матрицей. Кроме того, если верхний индекс перестановочной матрицы, т.е. a1, возрастает на заданную величину, и перестановочная матрица циклически сдвигается на заданную величину, перестановочная матрица также будет единичной матрицей.
На фиг.10 представлена блок-схема процедуры создания матрицы контроля по четности традиционного блочного LDPC-кода. До описания фиг.10 следует отметить, что для генерации блочного LDPC-кода необходимо определить длину кодового слова и скорость кодирования блочного LDPC-кода, подлежащего генерации, и необходимо определить размерность матрицы контроля по четности в зависимости от установленных длины кодового слова и скорости кодирования. Если длину кодового слова блочного LDPC-кода обозначить N и скорость кодирования обозначить R, то размерность матрицы контроля по четности становится N(1-R)×N. Фактически, процедура создания матрицы контроля по четности блочного LDPC-кода, показанная на фиг.10, выполняется только один раз, так как матрица контроля по четности с самого начала создается, чтобы соответствовать ситуации системы связи, и созданная матрица контроля по четности применяется впоследствии.
Как видно из фиг.10, на этапе 1011 контроллер разбивает матрицу контроля по четности с размерностью N(1-R)×N всего на p×q блоков с p блоками по горизонтальной оси и q блоками по вертикальной оси и затем переходит к этапу 1013. Поскольку каждый из блоков имеет размерность Ns×Ns, матрица контроля по четности состоит из Ns×p столбцов и Ns×q строк. На этапе 1013 контроллер классифицирует p×q блоков, получаемых разбиением матрицы контроля по четности, на информационную часть «s», первую часть p1 контроля по четности и вторую часть p2 контроля по четности и затем переходит к этапам 1015 и 1021.
На этапе 1015 контроллер разбивает информационную часть «s» на ненулевые блоки или ненулевые матрицы и нулевые блоки или нулевые матрицы в зависимости от степени распределения для гарантированной высокой производительности блочного LDPC-кода и затем переходит к этапу 1017. Поскольку степень распределения для гарантированной высокой производительности блочного LDPC-кода описана выше, здесь не дается подробного описания распределения. На этапе 1017 контроллер определяет перестановочные матрицы так, чтобы максимально увеличить минимальную длину цикла блочного цикла, как описано выше, на участках ненулевых матриц в блоках, имеющих низкую степень среди блоков, определенных в зависимости от распределения степеней для гарантированной высокой производительности блочного LDPC-кода, и затем переходит к этапу 1019. Перестановочные матрицы следует определять с учетом блочных циклов не только информационной части «s», но также первой части p1 контроля по четности и второй части p2 контроля по четности.
На этапе 1019 контроллер случайным образом определяет перестановочные матрицы на участках ненулевых матриц в блоках, имеющих высокую степень среди блоков, определенных в зависимости от распределения степеней для гарантированной высокой производительности блочного LDPC-кода, и затем заканчивает процедуру. Даже когда определяются перестановочные матрицы , подлежащие применению к участкам ненулевых матриц в блоках, имеющих высокую степень, перестановочные матрицы следует определять так, чтобы максимально увеличивалась минимальная длина цикла блочного цикла, и перестановочные матрицы определяются с учетом блочных циклов не только информационной части «s», но также первой части p1 контроля по четности и второй части p2 контроля по четности. Пример перестановочных матриц , расположенных в информационной части «s» матрицы контроля по четности, показан на фиг.7.
На этапе 1021 контроллер разбивает первую часть p1 контроля по четности и вторую часть p2 контроля по четности на 4 частичных матрицы B, T, D и E и затем переходит к этапу 1023. На этапе 1023 контроллер вводит ненулевые перестановочные матрицы Py и в 2 частичных блока из частичных блоков, составляющих частичную матрицу B, и затем переходит к этапу 1025. Конструкция для ввода ненулевых перестановочных матриц Py и в 2 частичных блока из частичных блоков, составляющих частичную матрицу B, описана со ссылкой на фиг.9.
На этапе 1025 контроллер вводит единичные матрицы I в диагональные частичные блоки частичной матрицы T, вводит отдельные перестановочные матрицы , , …, в (i, i+1)-ые частичные блоки под диагональными компонентами частичной матрицы T и затем переходит к этапу 1027. Конструкция для ввода единичных матриц I в диагональные частичные блоки частичной матрицы T и ввода отдельных перестановочных матриц , , …, в (i, i+1)-ые частичные блоки под диагональными компонентами частичной матрицы T описана со ссылкой на фиг.9.
На этапе 1027 контроллер вводит частичную матрицу Px в частичную матрицу D и затем переходит к этапу 1029. На этапе 1029 контроллер вводит перестановочную матрицу только в последний частичный блок в частичной матрице E и затем завершает процедуру. Конструкция для ввода 2 перестановочных матриц только в последний частичный блок из частичных блоков, составляющих частичную матрицу E, описана со ссылкой на фиг.9.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Как изложено выше, известно, что LDPC-код вместе с турбокодом дает большой выигрыш в производительности во время высокоскоростной передачи данных и эффективно корректирует ошибку, вызываемую шумами, порожденными в канале передачи, чем способствует повышению надежности передачи данных. Однако LDPC-код характеризуется недостатком с точки зрения скорости кодирования. То есть, так как LDPC-код характеризуется относительно высокой скоростью кодирования, он имеет ограничение по скорости кодирования. Среди существующих в настоящее время LDPC-кодов основные LDPC-коды имеют скорость кодирования 1/2, и только второстепенные LDPC-коды имеют скорость кодирования 1/3. Ограничение по скорости кодирования катастрофически сказывается на высокоскоростной высокопроизводительной передаче данных. Хотя, с использованием схемы с изменением плотности можно вычислить распределение степеней, представляющее наивысшую производительность, для реализации сравнительно низкой скорости кодирования LDPC-кода, реализация LDPC-кода с распределением степеней, представляющим наивысшую производительность, является сложной задачей ввиду различных ограничений, например, циклической конструкции в фактор-графе и исполнения аппаратных средств.
При разработке мобильной системы связи используют разнообразные схемы, например комбинированный автоматический запрос на повторную передачу (HARQ) и адаптивную модуляцию и кодирование (AMC), для повышения эффективности ресурса. Для применения схем HARQ и AMC, LDPC-коды должны обладать способностью к поддержке различных скоростей кодирования. Однако, так как LDPC-коды ограничены с точки зрения скорости кодирования, как упоминалось выше, LDPC-кодам сложно поддерживать различные скорости кодирования.
Кроме того, для применения схемы HARQ необходимо создать LDPC-коды, обладающие различными скоростями кодирования и использующие один кодер. Соответственно, существует потребность в схеме, допускающей создание LDPC-кодов, обладающих различными скоростями кодирования и использующих один кодер.
Поэтому целью настоящего изобретения является создание устройства и способа для кодирования и декодирования LDPC-кода, обладающего пер