Декодирование высокоизбыточных кодов с контролем четности с использованием многопорогового прохождения сообщения

Иллюстрации

Показать все

Изобретение относится к способу и устройству для исправления ошибок в сигнале связи. Многопороговая схема для итеративного декодирования принятого высоко-избыточного кодового слова с контролем четности включает в себя использование сравнения обновленной битовой надежности с порогом для создания восстановленной версии принятого кодового слова. В каждой итерации обновляются битовая надежность и восстановленное кодовое слово на основе сравнения с использованием порога, который был обновлен для данной итерации. Варианты осуществления изобретения включают в себя способы декодирования и/или соответствующего кодирования и устройство, использующее порог, который имеет два или более значений во время итеративного кодирования. Технический результат - обеспечение точности и быстродействия при уменьшении количества итераций. 9 н. и 37 з.п. ф-лы, 6 ил.

Реферат

Область техники

Варианты изобретения относятся в общем случае к исправлению ошибок в сигналах связи.

Уровень техники

Канал связи, будь то волоконно-оптический канал, коаксиальный канал, проводной канал, беспроводный канал или шина, соединяющая элементы системы, по которой пересылаются большие объемы данных, может внести шум и ошибки в информацию, передаваемую по такому каналу. Для исправления ошибок, добавленных каналом связи, информацию можно посылать в виде кодовых слов, где каждое кодовое слово содержит одинаковое общее количество битов и в котором некоторое количество битов являются информационными битами (биты сообщения), а несколько битов используются для исправления ошибок. Кодовое слово длиной n битов включает в себя k битов для длины кода сообщения и r=n-k избыточных битов. r битов предназначены для исправления ошибок и могут представлять собой r битов контроля четности. Матрица H контроля четности содержит набор уравнений контроля четности, которые определяют кодовое слово согласно соотношению:

HCT=0,

где C - n-мерный вектор битов кодового слова. Если это соотношение в приемнике не удовлетворяется, то принятое кодовое слово является недостоверным и должно быть либо исправлено, либо повторно передано.

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

Краткое описание чертежей

Фиг.1 - блок-схема варианта способа для итеративного декодирования информации, полученной из канала связи, согласно настоящему изобретению;

Фиг.2 - вариант устройства для итеративного декодирования информации, полученной из канала связи, согласно настоящему изобретению;

Фиг.3 - блок-схема варианта способа для кодирования информации для передачи кодового слова, представляющего информацию, в канал связи согласно настоящему изобретению;

Фиг.4 - вариант устройства для кодирования информации, которая итеративно декодируется на приемном конце канала связи с использованием множества значений для порога согласно настоящему изобретению;

Фиг.5 - блок-схема варианта сети связи, имеющей систему для кодирования высоко-избыточного кодового слова с контролем четности и систему для декодирования версии закодированного высоко-избыточного кодового слова с контролем четности, полученного из канала связи между двумя системами согласно настоящему изобретению;

Фиг.6 - блок-схема варианта способа для итеративного декодирования высоко-избыточного кодового слова с контролем четности с использованием декодера, который может быть сконфигурирован, как показано на фиг.5, согласно настоящему изобретению.

Подробное описание изобретения

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

Высокоизбыточные коды с контролем четности (LDPC) обеспечивают эффективный инструмент прямого исправления ошибок в высокоскоростных системах связи благодаря невысокой сложности декодирования и низкой частоте ошибок по битам (BER), достигаемой в канале с аддитивным белым гауссовым шумом (AWGN). Стандартные декодеры LDPC работают, используя схему однопорогового декодирования. Примеры известных декодеров LDPC включают в себя, среди прочих, алгоритм минимальных сумм, алгоритм декодирования на основе апостериорных вероятностей (APP) и равномерно наиболее мощный (UMP) декодер.

Коды LDPC используют матрицу контроля четности, содержащую большинство нулей и ограниченное количество единиц. Двоичный (n, γ, ρ) код LDPC имеет длину кодового слова или длину блока, равную n битов, и матрицу контроля четности, содержащую ровно γ единиц в каждом столбце и ровно ρ единиц в каждой строке. В коде LDPC каждый кодовый бит проверяется с помощью γ проверок четности, а каждая проверка четности использует ρ кодовых битов. Кроме того, у кода имеется скорость R, определяемая как R=k/n, где k - количество битов сообщения (информационных битов) в кодовом слове, имеющем n битов.

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

При декодировании LDPC может быть применен алгоритм декодирования с доверительным распространением на основе использования вероятностных значений. Как правило, итеративное декодирование кода LDPC связано с определением вектора x с максимальной вероятностью, где HxT mod 2 = 0. Вероятность x может быть задана произведением вероятностей того, что для каждой битовой позиции n, Xn=x. Для двоичного кодового слова x принимает значение 0 и 1, так что вероятность того, что x=1, равна единице минус вероятность того, что x=0. Кроме того, вероятностные значения могут быть представлены логарифмическими отношениями правдоподобия. Для двоичного сигнала с вероятностью p, заданной в качестве вероятности 1, логарифмическое отношение правдоподобия (LLR) может быть задано в виде

LLR(p) = loge((1-p)/p).

При декодировании сумм-произведений выполняется декодирование с использованием значений LLR.

Что касается процесса, связанного с описанным выше изменением значения принятого бита на противоположное, то по сигналу, полученному из канала связи, было принято начальное жесткое решение. Жесткое решение принимается для бита путем отдельной оценки этого бита. При жестком решении для двоичного бита декодер присваивает биту значение 1 или 0, если этот бит меньше или больше фиксированного значения, установленного декодером. Если декодер устанавливает фиксированное значение равным нулю, при жестком решении бит устанавливается равным 1, если принятый сигнал для этого бита является положительным, и устанавливается равным 0, если принятый сигнал отрицательный. В альтернативном варианте при жестком решении бит может устанавливаться равным 1, если принятый сигнал для этого бита отрицательный, и устанавливаться равным 0, если принятый сигнал положительный.

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

Как известно специалистам в данной области техники, различные схемы декодирования реализуют схемы мягкого декодирования с использованием вероятностей. По одной схеме в процессах мягкого решения вычисляется апостериорная вероятность для каждого бита кодового слова, которая представляет собой вероятность того, что данный бит равен единице при условии, что все ограничения для контроля четности удовлетворяются. Собственная или априорная вероятность - это битовая вероятность, не зависящая от кодовых ограничений, а «несобственная» вероятность учитывает то, что стало известно. Например, в алгоритме сумм-произведений для декодирования логарифмическое отношение правдоподобия (LLR) принятого сигнала, представляющего один бит, устанавливается на основе сведений о канале. Для канала с шумом типа AWGN и отношением сигнал-шум SNR начальное отношение LLR для этого бита может быть установлено как

где Yi - принятый сигнал, а σ - стандартное отклонение AWGN. Стандартное отклонение может быть определено через SNR для AWGN как , где n - длина кода, k - длина сообщения, а SNR - это SNR на один бит сообщения. LLRi функционально относится к надежности Ri бита i. Надежность - это мера доверия к значению бита. Итеративное декодирование в различных схемах включает в себя обновление надежности, соответствующей принятым битам, и/или обновление надежности, соответствующей ненулевым элементам матрицы H контроля четности. Указанные итеративные процессы включают в себя проверку достоверности обновленного тестового кодового слова посредством соотношения HxT = 0. Если тест не дает достоверное кодовое слово, то итеративный процесс продолжается, пока не будет получено достоверное кодовое слово или пока не будет выполнено максимальное количество итераций.

В одном варианте многопороговый декодер сконструирован для обеспечения алгоритма итеративного декодирования с пониженной сложностью и хорошими характеристиками исправления ошибок для декодирования кодов LDPC из канала с «мягким» выходным результатом. Этот вариант для многопорогового декодера с вычислением надежностей для быстрого декодирования LDPC работает с использованием канала с «мягким» выходным результатом (мягкого решения) для создания вектора жесткого решения и вектора надежностей принятых битов. Битовые надежности используются для вычисления надежностей для контроля четности, а общая надежность контроля четности устанавливается равной минимальному значению битовой надежности для всех битов, которые включены в данную проверку четности. Для повторного вычисления битовых надежностей используется процедура взвешенного голосования для контроля четности, где весами являются надежности контроля четности. В указанных вариантах, если значение веса контроля четности уменьшается, качество декодирования возрастает. Вначале битовой надежности присваивается значение битовой надежности, коррелированной со значением принятого бита. Голосование для контроля четности применяется к текущему вектору жесткого решения. На основе голосования для контроля четности в сравнении с пороговым значением в данной итерации, битовая надежность устанавливается равной вновь вычисленной битовой надежности, которая увеличивается на значение надежности контроля четности; в противном случае, повторно вычисленная битовая надежность уменьшается на значение надежности контроля четности.

Для каждой итерации обеспечиваются пороговые значения, причем эти пороговые значения могут вычисляться в течение одной или более итераций. Пороговые значения используются для получения решений о том, следует ли обновить бит и связанную с ним надежность. Если конкретная надежность меньше порогового значения, то тогда бит жесткого решения, связанный с этой надежностью, изменяет свое значение на противоположное, и абсолютному значению вновь вычисленной надежности присваивается это новое значение. Данная схема декодирования является итеративной, а пороги могут различаться от одной итерации к другой, причем для вычисления во время процесса декодирования обеспечены или запланированы, по меньшей мере, два значения порога. Хотя пороги могут быть вычислены во время итерации, их значения могут также быть определены заранее. В другом варианте на первой итерации порог решения по ошибке устанавливается равным минимальной из битовых надежностей, а затем на всех остальных итерациях порог решения по ошибке устанавливается равным нулю. В этом варианте схема многопорогового декодирования представляет собой схему декодирования с использованием двух порогов. Двухпороговая схема дает увеличение частоты ошибок по битам 0,1-0,4 дБ по сравнению с быстрым декодированием без использования порога, имеющего множество значений.

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

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

На фиг. 1 показана блок-схема варианта способа для итеративного декодирования информации, полученной из канала связи. На шаге 110 осуществляется прием кодового слова. Кодовое слово может содержать некоторое количество информационных битов или битов сообщения и несколько битов для использования при обнаружении ошибок и/или их исправлении. На шаге 120 выбирается значение порога. В одном варианте значение для порога выбирается с использованием битовых надежностей, коррелированных с принятым кодовым словом, во время каждой итерации. Такой выбор может проводиться путем вычисления минимальной надежности для сравнения, первоначально сформированной исходя из процесса мягкого решения, выполненного на основе принятого кодового слова, после чего создается вектор жесткого решения и вектор надежностей. Битовые надежности могут быть коррелированы с каналом связи. В одном варианте битовые надежности создаются с использованием известных, вычисленных или оцененных свойств канала связи, таких как, но не только, отношение сигнал-шум, связанное с сигналами, распространяющимися через канал связи. В другом варианте набор битовых надежностей первоначально коррелируется с набором принятых битов, например, но не только, с абсолютным значением сигнала, принятого для каждой битовой позиции. В одном варианте в качестве порогового значение может быть выбрано одно из заранее определенного набора значений, причем этот выбор зависит от структуры данного кода, SNR канала и номера итерации декодирования.

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

На фиг.2 показан вариант устройства 200 для итеративного декодирования информации, полученной из канала связи. Устройство 200 включает в себя приемник 210, генератор 220 битовых надежностей и блок 230 сравнения. Приемник 210 получает данные из канала связи. В одном варианте полученные данные представлены в виде битов в сигнальном потоке, где указанные биты определяют кодовое слово. В альтернативном варианте приемник 210 может принимать сигнал и преобразовывать принятый сигнал в кодовое слово. Генератор 220 битовых надежностей генерирует одну или более битовых надежностей, связанных с принятым кодовым словом. В одном варианте начальные битовые надежности генерируются на основе принятого кодового слова и отношения правдоподобия, относящегося к вероятностям того, что двоичный сигнал равен единице или нулю. Указанные битовые надежности также могут быть коррелированы с отношением сигнал-шум канала связи, из которого получено принятое кодовое слово. В альтернативном варианте начальные битовые надежности могут генерироваться на основе принятого кодового слова, например, путем установки начальных битовых надежностей равными абсолютному значению принятого кодового слова для каждого бита.

Блок 230 сравнения сравнивает битовые надежности, сформированные генератором битовых надежностей, с порогом. Выполнив указанное сравнение, блок 230 сравнения обновляет битовые надежности и биты тестового кодового слова в зависимости от результатов сравнения со значением порога. Блок 230 сравнения использует множество значений для порога в зависимости от текущей итерации в процессе декодирования. Обновленные биты тестового кодового слова оцениваются, чтобы определить, обеспечили ли обновленные биты достоверное кодовое слово. Если генерировано достоверное кодовое слово, то блок 230 сравнения может выдать достоверное кодовое слово или извлечь информационные биты (биты сообщения) из кодового слова и вывести сообщение. Блок 230 сравнения может быть реализован в виде аппаратной конфигурации либо выполнен в виде программной конфигурации. В одном варианте значения для порога, используемые блоком 230 сравнения, устанавливаются в соответствии с итерацией, в которой используется данное значение. Можно использовать таблицу порогов, связывающую заранее определенное значение с номером итерации, заданной для данной структуры кода и данной ситуации в канале, к примеру, соответственно SNR канала. В другом варианте значения для порога, используемые блоком 230 сравнения, устанавливают, используя битовые надежности и результат сравнения с пороговым значением, установленным для той итерации декодирования, в которой работает в данный момент блок 230 сравнения. В одном варианте устройство 200 декодирует кодовое слово LDPC.

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

На фиг.4 показан вариант устройства 400 для кодирования информации, которая итеративно декодирована с использованием множества значений для порога на приемном конце канала связи. Устройство 400 включает в себя приемник 410 для получения информации с целью кодирования, кодер 420 и передатчик 430. Приемник 410 получает данные, предоставленные устройству 400 для передачи по каналу связи. Кодер 420 использует эту информацию и создает кодированное слово, содержащее информационные биты (биты сообщения) и биты для исправления ошибок на приемном конце канала передачи. Информация, подаваемая в кодер 420, может быть представлена в виде информационных битов. В альтернативном варианте кодер 420 может использовать предоставленную информацию и сформировать информационные биты. Кодер 420 кодирует информацию, создавая кодовое слово, так что версия этого кодового слова после приема итеративно декодируется с использованием битовой надежности, обновляемой путем сравнения с порогом. Порог обновляется для обеспечения множества значений во время итеративного процесса. Передатчик 430 посылает кодированное кодовое слово по каналу связи.

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

На фиг.5 представлена блок-схема варианта сети 500 связи, содержащей систему 502 для кодирования высоко-избыточного кодового слова с контролем четности и систему 520 для декодирования версии кодированного высоко-избыточного кодового слова с контролем четности, полученного из канала 505 связи между этими двумя системами. Источник информации предоставляет информационные биты LDPC кодеру 510 системы 502. Кодер 510 LDPC включает в себя процедуру 512 кодирования, в которой используется структура 514 H-матрицы для создания кодового слова, передаваемого в канал 505. Структура 514 H-матрицы разработана с использованием параметров 514 кода LDPC, которые предоставляются системе 502 и системе 520.

Система 520 включает в себя декодер 522 LDPC, который использует параметры 514 кода LDPC. Параметры кода LDPC используются структурой 524 H-матрицы в декодере 522 LDPC. Кодовое слово, принятое из канала 505, подается в блок 526 начального решения для получения мягких решений, дающих в результате жесткие решения 528 и решения 530 по надежности. Жесткими решениями 528 являются начальные двоичные биты для тестового кодового слова, а решениями по надежности являются начальные битовые надежности, связанные с битами тестового кодового слова. В одном варианте жесткими решениями 528 являются двоичные биты, установленные в соответствии со знаком соответствующего бита принятого кодового слова. Принятый бит, имеющий положительное значение, устанавливается равным единице, а принятый бит, имеющий нулевое значение или отрицательное значение, устанавливается равным нулю. В альтернативном варианте, принятый бит, имеющий нулевое значение или положительное значение, устанавливается равным нулю, а принятый бит, имеющий отрицательное значение, устанавливается равным единице. Начальные битовые надежности для каждого бита принятого кодового слова могут быть установлены равными абсолютному значению соответствующего бита принятого кодового слова.

Жесткие решения 528, решения 530 по надежности и структура 524 H-матрицы подаются в многопороговый декодер 532 для выполнения процесса итеративного декодирования с целью обеспечения информационных битов 508 от системы 520. Многопороговый декодер 532 использует пороги 534, с которыми сравниваются расчетные надежности, а битовые надежности и биты для тестового кодового слова обновляются. Расчетные надежности получают из битовых надежностей. В одном варианте расчетные надежности получают из начальных решений по надежности и вычисленных контрольных сумм. Биты для тестового кодового слова создаются из жестких решений 528 с битами, значения которых изменены на противоположные, в соответствии с результатами сравнения со значением порога на каждой итерации. В одном варианте пороги 534 вычисляются на основе сравнения расчетных битовых надежностей и значения порога для данной итерации. В одном варианте вычисляется набор порогов 534 на основе сравнения расчетных битовых надежностей и значения порога для данной итерации, причем эти пороги используются в нескольких других итерациях. Второй набор порогов 534 устанавливается с фиксированным значением, таким как нуль, и используется в нескольких других итерациях. Фиксированное значение для порога используется в группе итераций, образующих последние итерации в процессе декодирования. В альтернативном варианте пороги 354 устанавливаются равными заранее определенным значениям в зависимости от итерации, в которой используется данное значение порога.

Можно реализовать различные варианты для сети 500 связи, системы 502 и системы 520. Сеть 500 связи может представлять собой наземную сеть, использующую оптические волокна, коаксиальный кабель или провода в качестве среды передачи для каналов связи между различными узлами сети 500 связи. Сеть 500 связи может быть реализована в виде беспроводной сети, в которой системы 502 и 520 сконфигурированы как часть узла сети 500 связи или как часть беспроводного приемного устройства, которое принимает сигналы из узлов сети 500 связи. Системы 502 и 520 могут быть сконфигурированы как часть, но не только, сетевых компонент, таких как базовые станции, и могут быть сконфигурированы как часть, но не только, беспроводных приемных устройств, таких как портативные устройства связи, компьютеры и вычислительные устройства типа «лэптоп». Хотя это не показано, системы 502 и 520, сконфигурированные в системе беспроводной связи 500, включают в себя антенны для передачи и приема сигналов, которые содержат одно или несколько кодовых слов. Схемы и устройства декодирования и кодирования не ограничивают тип или конфигурацию таких компонент поддержки, как антенны в системах 502 и 520. В одном варианте используется фактически всенаправленная антенна.

Каждый узел сети 500 связи, сконфигурированной в виде наземной сети или в виде беспроводной сети, может содержать версию системы 502 и/или версию системы 520, либо систему, являющуюся комбинацией системы 502 и системы 520. Дополнительно, процессы декодирования и кодирования, используемые в кодерах и декодерах систем 502 и 520, а также описанные здесь другие варианты для процессов и устройства декодирования и кодирования могут быть адаптированы для стандартов и протоколов связи, используемых в сети 500 связи.

На фиг.6 показана блок-схема варианта способа, который можно использовать с декодером LDPC, таким как декодер 522 LDPC, с конфигурацией, показанной на фиг. 5. На шаге 610 строится вектор начального жесткого решения и вектор начальных надежностей. Для принятого кодового слова Y=(Y1, Y2, ..., Yn) положим, что N(m) является набором позиций кодового слова, которые используются в m-й проверке четности: N(m)={n:Hm,n=1}, где H - матрица контроля четности, такая как предусмотрена структурой 524 H-матрицы на фиг. 5, а Hm,n=1 означает, что значение матрицы H в позиции m, n равно единице. Кроме того, положим, что M(n) является набором проверок четности, который включает в себя n-ю позицию кодового слова: M(n)={m:Hm,n=1}.

При инициализации, для каждого элемента yi принятого вектора, такого как принятый в декодере 522 LDPC по фиг.5, вычисляются жесткое решение Xi и битовая надежность Ri. Битовая надежность Ri устанавливается равной абсолютному значению Yi. Жесткое решение может установить Xi равным единице, если Yi больше нуля, и Xi равным нулю, если Yi меньше или равно нулю. Для каждого битовая надежность контроля четности определяется как Ymn, где первоначально Ymn = Rn, а соответствующее жесткое решение определяется как Xmn, где первоначально Xmn = Xn.

После инициализации, на шаге 620 итеративный процесс начинается с выполнения вычисления надежностей контроля четности. В одном варианте для каждого n и каждого контрольные суммы Smn вычисляются как:

Σ Xmn' mod 2, где суммирование выполняется по N(m)/n. Выражение N(m)/n означает набор N(m), где исключен бит n. Значение минимума Ymn определяется как:

Ymn min = min{Ymn'} для N(m)\n.

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

Zn = Rn + Σ (-1)Smn Ymn min для .

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

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

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

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

На шаге 640 выполняется обновление битовой надежности контроля четности. Вычисляется набор надежностей для сравнения исходя из надежностей контроля четности, что может рассматриваться как голосование для контроля четности. Для каждого n и каждого величина Zmn определяется как

Zmn = Rn + Σ (-1)Sm'n Ym'n min для