RU2634193C1 - Декодер ldpc и способ его функционирования - Google Patents
Декодер ldpc и способ его функционирования Download PDFInfo
- Publication number
- RU2634193C1 RU2634193C1 RU2016125720A RU2016125720A RU2634193C1 RU 2634193 C1 RU2634193 C1 RU 2634193C1 RU 2016125720 A RU2016125720 A RU 2016125720A RU 2016125720 A RU2016125720 A RU 2016125720A RU 2634193 C1 RU2634193 C1 RU 2634193C1
- Authority
- RU
- Russia
- Prior art keywords
- input
- output
- sign
- vertex
- multiplexer
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
- H03M13/1122—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1134—Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Группа изобретений относится к области цифровой обработки информации, а именно к декодерам LDPC (кодов с малой плотностью проверок на четность) и способам их функционирования. Техническим результатом является уменьшение аппаратных ресурсов. Сущность заявленных изобретений заключается в оптимизации схемы декодера и способа его функционирования, а именно использования для каждой проверочной вершины одного узла поиска минимумов (509) и элементов памяти (503) для всех ребер, исходящих из этой проверочной вершины (502) к символьным (501) согласно графу. Для каждой символьной вершины используют один общий сумматор (516) всех сообщений (520 и 515) от проверочных вершин согласно графу Таннера и элемент памяти (524) вне зависимости от ребер, исходящих из этой символьной вершины. 2 н.п. ф-лы, 5 ил.
Description
Изобретение относится к области цифровой обработки информации, а именно к декодерам LDPC (Low density parity check - кодов с малой плотностью проверок на четность) и способам их функционирования, и может быть использовано для декодирования информации, закодированной кодом LDPC, в различных системах передачи/приема данных.
Коды LDPC относятся к блочному кодированию и широко используют в системах передачи информации. Данные коды позволяют исправлять множественные ошибки в блоках данных от нескольких бит до сотен килобайт (увеличение блока данных приводит к аппаратным сложностям).
В настоящее время данные коды LDPC массово используют в нескольких стандартах передачи данных. Последние достижения в технологии производства микроэлектроники позволяют аппаратно реализовать системы кодирования (декодирования) на основе кодов LDPC, что позволяет крайне близко подойти к границе Шеннона по пропускной способности.
Как у любого блочного кода, основой декодирования является проверочная матрица. При больших длинах данных (десятки-сотни килобит) данная матрица имеет огромные размеры, однако суть кодов LDPC заключается в том, что количество единиц в строках и столбцах всегда не более определенного числа, гораздо меньшего размерности матрицы. Как правило, декодирование осуществляют при помощи графа Таннера, построенного согласно проверочной матрице. Существует несколько способов декодирования по надежностям, полученным при демодуляции принятых данных из зашумленного канала. Наиболее адаптированным способом для аппаратной реализации с минимальной потерей в корректирующей способности является алгоритм min-sum (минимум-сумма). В зависимости от применения существуют параллельный, последовательный и последовательно-параллельный способы реализации данного алгоритма. Наибольшей пропускной способностью является алгоритм, реализованный параллельным способом, то есть обменом вероятностью между символьными и проверочными вершинами графа Таннера. Данная реализация требует наибольшие аппаратные ресурсы.
Известен декодер LDPC, описанный в заявке US 2011/0239086 A1, в котором реализован алгоритм min-sum. Однако, в нем по каждому ребру от проверочной вершины к символьной вычисляют свое сообщение, что требует больших аппаратных ресурсов декодера. Аналогично, от символьной вершины к проверочным вычисляют сообщение, уникальное для каждой вершины, что также требует больших аппаратных ресурсов декодера, поэтому увеличивает его стоимость.
В патенте RU 2382493 описан способ декодирования кодов LDPC, в котором узел проверочной вершины оптимизирован подобно заявленному изобретению в части вычисления двух минимумов, однако отсутствует элемент корректировки сообщения от символьной вершины к проверочной. Это значит, что в символьной вершине также вычисляют уникальные сообщения по каждому ребру, исходящему из вершины, что требует больших аппаратных ресурсов декодера, поэтому увеличивает его стоимость.
Наиболее близкими к заявленному изобретению являются декодер LDPC и способ его функционирования, описанные в патенте CN 101188426 и выбранные в качестве прототипов заявленного изобретения, которые аналогичны способу, описанному в патенте RU 2382493, в части сохранения двух минимумов, однако в них значения хранят в буферах FIFO, что свидетельствует о последовательном режиме работы, и также отсутствует элемент корректировки сообщения от символьной вершины к проверочной, это свидетельствует о затрате большие аппаратных ресурсов декодера со стороны символьных вершин и, соответственно, об увеличении стоимости декодера.
Задачей заявленного изобретения является создание декодера LDPC (Low density parity check - кодов с малой плотностью проверок на четность) и способа его функционирования с меньшими аппаратными ресурсами и, соответственно, с меньшей стоимостью, за счет оптимизации параллельного алгоритма min-sum, а именно за счет одного подсчета надежностей от проверочной вершины для символьных вершин с разницей только в коммутации этих значений для символьной вершины, а также за счет одного общего сумматора в каждой символьной вершине. Алгоритм min-sum является итеративным, в нем при каждой итерации пересчитывают надежности, первоначально принятые от демодулятора. От каждой проверочной вершины исходит надежность, подсчитанная по правилу для символьной вершины согласно графу Таннера (Фиг. 1). И, соответственно, наоборот, от каждой символьной вершины исходит надежность, подсчитанная по правилу для проверочной вершины.
Поставленная задача решена путем создания декодера LDPC (Фиг. 5), содержащего по меньшей мере два общих сумматора (516) с элементами памяти и по меньшей мере два блока (509) поиска двух минимумов, вход которых соединен с выходом сумматора (528) текущей символьной вершины (501) и по меньшей мере еще один вход соединен с по меньшей мере еще одним сумматором (539) другой символьной вершины (541), а выходы соединены с входами элементов памяти (503), выходы которых соединены с нулевым и первым входами мультиплексора (532), вход выбора которого соединен с выходом элемента памяти (534), хранящего значение сигнала выбора (510), причем выход этого же элемента памяти (534) также соединен со входом мультиплексора (533) знака, нулевой и первый входы которого соединены с выходами элементов памяти (503), выполненных с возможностью хранения знака второго и первого (507, 506) минимального значения выхода блока (509) поиска двух минимумов, а выход мультиплексора (533) знака соединен с входом сумматора (523) по модулю два, второй вход которого соединен с выходом элемента памяти (503), выполненного с возможностью хранения общего знака (508) сообщений, а выход соединен с входом инвертора (527), выход которого соединен с входом выбора мультиплексора (531) константы, выход которого соединен с первым входом умножителя (530), второй вход которого соединен с выходом мультиплексора (532) значения, при этом выход умножителя (530) соединен с первым входом сумматора (528), выход которого соединен с входом блока поиска минимумов (509) и с первым входом компаратора (511), второй вход которого соединен с выходом умножителя (512), на второй вход которого поступает модуль первого минимума (504) с выхода блока поиска минимумов (509), а на первый вход поступает сигнал с выхода мультиплексора (513) константы, на нулевой вход которого поступает константное значение 1, а на первый вход константное значение -1, на вход выбора этого мультиплексора (513) поступает значение знака первого минимума (506), при этом выход компаратора (511) соединен с входом элемента памяти (534), с входом выбора мультиплексора (521) значения и входом выбора мультиплексора (535) знака, на нулевой и первый вход которого поступают знаки второго (507) и первого (506) минимумов с выхода блока поиска минимумов (509), при этом выход мультиплексора (535) знака соединен с первым входом сумматора (536) по модулю два, на второй вход которого поступает значение (508) общего знака с выхода блока (509) поиска минимумов, а выход сумматора (536) по модулю два соединен с входом выбора мультиплексора (522) константы, на нулевой вход которого поступает константное значение 1, а на первый вход константное значение -1, при этом выход мультиплексора константы (522) соединен с первым входом умножителя (529), второй вход которого соединен с выходом мультиплексора (521) значения, на нулевой и первый входы которого поступают первый (504) и второй (505) минимумы с выходов блока поиска минимумов (509), при этом выход (515) умножителя (529) соединен с входом общего сумматора (516), вход которого соединен с входом декодера, а по меньшей мере еще один вход соединен с выходом умножителя (529) текущей проверочной вершины (502), а выход общего сумматора (516) соединен с входом элемента памяти (524), выход которого является выходом декодера и соединен со вторым входом сумматора (528).
Поставленная задача решена также путем создания способа функционирования декодера LDPC (Фиг. 5), в котором на первом этапе в каждой проверочной вершине (502) определяют два минимальных по модулю значения из всех приходящих сообщений (518 и 519) от символьных вершин (501) независимо от того, для какой символьной вершины они предназначаются, причем абсолютные значения минимумов (504, 505), а также знаки (506, 507) этих значений, сохраняют в элементах памяти (503), при раздаче сообщения обратно к символьным, учитывают текущее сообщение от символьной вершины (518): если оно совпадает с одним из выбранных минимумов с учетом знака, то для этой вершины выбирают другой из двух минимумов для каждой из вершин, при каждой итерации сохраняют в элементах памяти (503) оба минимума по модулю (504, 505), оба знака этих минимумов (506, 507), а также общий знак всех сообщений (508), приходящих в проверочную вершину (502), сигнал отрицательного сообщения сохраняют в следующем виде:
тогда общий сигнал отрицательности (508) всех входящих сообщений вычисляют следующим образом:
сигнал выбора (510) одного из минимумов для сообщения от проверочной вершины к символьной формируют на выходе первого компаратора (511), исходя из найденных узлом MINIMUM (509) значений:
таким образом, модуль сообщения (514) от проверочной вершины к символьной формируют на выходе второго мультиплексора (521) следующим образом:
а так как знак формируют из общего знака всех сообщений, исключая сообщения от символьной вершины, для которой формируют сообщение на выходе второго компаратора (522), исключив из общего знака, знак отброшенного согласно (10) минимума:
- сигнал отрицательности, сформированный на выходе сумматора по модулю 2 (523), сформированные сообщения (520) от каждой проверочной вершины (502) согласно графу Таннера посылают на входы общего сумматора (516) символьной вершины (501), так что на его выходе формируют значение согласно (4): которое при каждой итерации сохраняют в элемент памяти (524), выход которого является выходом декодера (525);
на втором этапе оптимизации корректируют полную сумму для каждой из проверочных вершин от рассматриваемой символьной, при этом вычитают из полной суммы после элемента памяти (524) сообщение от этой вершины, запомненное на предыдущем шаге, все операции с сохраненными в элементах памяти (503) значениями минимумов и знаков выполняют (min 1_, min 2_, neg1_, neg2_, neg_) аналогично выражениям (8-11), знак отрицательности (526) из выражения (12) формируют с помощью инвертора (527) с точностью до наоборот:
у сообщения меняют знак и складывают с полной суммой, при этом получают на выходе сумматора (528) скорректированное сообщение от символьной вершины.
Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими чертежами.
Фиг. 1 - пример графа Таннера.
Фиг. 2 - схема сообщений от символьной вершины к проверочным после инициализации, выполненная согласно изобретению.
Фиг. 3 - схема сообщений от проверочной вершины С2 к символьным D0 (а) и D3 (б), выполненная согласно изобретению.
Фиг. 4 - схема сообщений от символьной вершины D1 к проверочным С0 (а) и С1 (б), выполненная согласно изобретению.
Фиг. 5 - функциональная схема декодера (с коммутацией сообщений между проверочными и символьными вершинами), выполненная согласно изобретению.
Рассмотрим кратко принцип работы заявленного изобретения (Фиг. 2-4). Декодирование по алгоритму min-sum начинают с инициализации элементов памяти символьных вершин значениями априорного отношения правдоподобий (201), поступающих от демодулятора (Фиг. 2):
где Un - априорное отношение правдоподобий принятого символа n от демодулятора,
N - длина кодового слова,
deg(n) - степень вершины - количество исходящих ребер от символьной вершины,
Далее обновляют информацию, исходящую от проверочных вершин (303), по следующему правилу (Фиг. 3):
где функция g(…) - определяет минимальное по модулю значение с общим знаком из всех аргументов, так что:
Стоит заметить, что среди аргументов функции поиска минимального значения для конкретной символьной вершины (302) отсутствует собственно сообщение от этой символьной вершины. Таким образом, от одной проверочной вершины к символьным исходят разные сообщения о минимуме, поэтому облако комбинационной логики (305) получается разным для каждого исходящего ребра (306) (Фиг. 3).
Далее обновляют все символьные вершины (402) с учетом полученных сообщений от всех проверочных вершин (403), вычисленных согласно выражению (2):
В следующей итерации сообщения (404) от символьных вершин к проверочным вычисляют в зависимости от того, к какой проверочной вершине они следуют:
Аналогично сообщениям от проверочных вершин, сообщения (404) от символьных вершин для конкретной проверочной вершины в своей сумме не содержат сообщения собственно от этой проверочной вершины. Таким образом, от одной символьной вершины к проверочным исходят разные сообщения о сумме, поэтому облако комбинационной логики (405) получается разным для каждого исходящего ребра (406) (Фиг. 4).
Рассмотрим более подробно вариант выполнения заявленного декодера, показанный на Фиг. 5 и способ его функционирования.
Ввиду того, что для каждого ребра из каждой проверочной вершины согласно графу Таннера необходима своя функция нахождения минимума, аппаратные ресурсы будут крайне велики. В заявленном изобретении оптимизирован данный алгоритм с целью уменьшения аппаратных ресурсов.
Если рассматривать путь сообщений от проверочных вершин (303) к символьным (302), то согласно выражению (2) для символьной вершины ni (302) необходимо найти минимум из всех приходящих в проверочную вершину k сообщений от символьных вершин кроме ni. И так далее, для ni+1 участвуют все сообщения кроме сообщения от ni+1 (Фиг. 3 а, б).
Первый этап оптимизации заключается в определении двух минимальных (по модулю) значений из всех приходящих сообщений (518 и 519) от символьных вершин независимо о того, для какой символьной вершины они предназначаются, при этом существенном снижении аппаратных ресурсов. Абсолютные значения минимумов (504, 505), а также знаки (506, 507) этих значений сохраняют в элементах памяти (503). При раздаче сообщения обратно к символьным, учитывают текущее сообщение от символьной вершины (518): если оно совпадает с одним из выбранных минимумов с учетом знака, то для этой вершины выбирают другой из двух минимумов для каждой из вершин. При каждой итерации сохраняют в элементах памяти (503) оба минимума по модулю (504, 505), оба знака этих минимумов (506, 507), а также общий знак всех сообщений (508), приходящих в проверочную вершину (502). Сигнал отрицательного сообщения сохраняют в следующем виде:
тогда общий сигнал отрицательности (508) всех входящих сообщений вычисляют следующим образом:
Сигнал выбора (510) одного их минимумов для сообщения от проверочной вершины к символьной формируют на выходе первого компаратора (511), исходя из найденных узлом MINIMUM (509) значений:
Таким образом, модуль сообщения (514) от проверочной вершины к символьной формируют на выходе второго мультиплексора (521) следующим образом:
а так как знак формируют из общего знака всех сообщений, исключая сообщения от символьной вершины, для которой формируют сообщение на выходе второго компаратора (522), исключив из общего знака, знак отброшенного согласно (10) минимума:
- сигнал отрицательности, сформированный на выходе сумматора по модулю 2 (523).
Сформированные таким образом сообщения (520) от каждой проверочной вершины (502) согласно графу Таннера посылают на входы общего сумматора (516) символьной вершины (501), так что на его выходе формируют значение согласно (4):
, которое после нескольких итераций сохраняют в элемент памяти (524), выход которого является выходом декодера (525).
Второй этап оптимизации состоит в том, что в каждой символьной вершине (501) хранится полная сумма всех сообщений (520), согласно графу, от проверочных вершин, вне зависимости для какой из проверочных вершин она предназначена. Однако согласно выражению (5) для проверочной вершины (502) предназначена сумма сообщений от проверочных вершин, кроме этой проверочной вершины (502). В схеме на Фиг. 5 предусмотрена корректировка полной суммы для каждой из проверочных вершин от рассматриваемой символьной. Вычитают из полной суммы после элемента памяти (524) сообщение от этой вершины, запомненное на предыдущем шаге. Все операции с сохраненными в элементах памяти (503) значениями минимумов и знаков выполняют (min1_, min2_, neg1_, neg2_, neg_) аналогично выражениям (8-11). Нижнее подчеркивание перед индексом означает, что это значение после элемента памяти (503). Знак отрицательности (526) из выражения (12) формируют с помощью инвертора (527) с точностью до наоборот:
Так как от общей суммы необходимо вычесть сообщение от данной вершины, поэтому у сообщения меняют знак и складывают с полной суммой, при этом получают на выходе сумматора (528) скорректированное сообщение.
Сущность заявленного изобретения заключается в оптимизации схемы декодера и способа его функционирования, а именно использования для каждой проверочной вершины одного узла (данный узел выделен пунктиром на Фиг. 5) поиска минимумов (509) и элементов памяти (503) для всех ребер, исходящих из этой проверочной вершины (502) к символьным (501) согласно графу. И для каждой символьной вершины используют один общий сумматор (516) всех сообщений (520 и 515) от проверочных вершин согласно графу Таннера и элемент памяти (524) (узел выделен сплошной линией) вне зависимости от ребер, исходящих из этой символьной вершины. По каждому ребру необходима схема коммутации сообщений, однако данная схема проста в реализации (выделено жирным штрихпунктирном).
Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.
Claims (22)
1. Декодер LDPC, содержащий по меньшей мере два общих сумматора (516) с элементами памяти и по меньшей мере два блока (509) поиска двух минимумов, вход которых соединен с выходом сумматора (528) текущей символьной вершины (501) и по меньшей мере еще один вход соединен с по меньшей мере еще одним сумматором (539) другой символьной вершины (541), а выходы соединены с входами элементов памяти (503), выходы которых соединены с нулевым и первым входами мультиплексора (532), вход выбора которого соединен с выходом элемента памяти (534), хранящего значение сигнала выбора (510), причем выход этого же элемента памяти (534) также соединен со входом мультиплексора (533) знака, нулевой и первый входы которого соединены с выходами элементов памяти (503), выполненных с возможностью хранения знака второго и первого (507, 506) минимального значения выхода блока (509) поиска двух минимумов, а выход мультиплексора (533) знака соединен с входом сумматора (523) по модулю два, второй вход которого соединен с выходом элемента памяти (503), выполненного с возможностью хранения общего знака (508) сообщений, а выход соединен с входом инвертора (527), выход которого соединен с входом выбора мультиплексора (531) константы, выход которого соединен с первым входом умножителя (530), второй вход которого соединен с выходом мультиплексора (532) значения, при этом выход умножителя (530) соединен с первым входом сумматора (528), выход которого соединен со входом блока поиска минимумов (509) и с первым входом компаратора (511), второй вход которого соединен с выходом умножителя (512), на второй вход которого поступает модуль первого минимума (504) с выхода блока поиска минимумов (509), а на первый вход поступает сигнал с выхода мультиплексора (513) константы, на нулевой вход которого поступает константное значение 1, а на первый вход константное значение -1, на вход выбора этого мультиплексора (513) поступает значение знака первого минимума (506), при этом выход компаратора (511) соединен с входом элемента памяти (534), с входом выбора мультиплексора (521) значения и входом выбора мультиплексора (535) знака, на нулевой и первый вход которого поступают знаки второго (507) и первого (506) минимумов с выхода блока поиска минимумов (509), при этом выход мультиплексора (535) знака соединен с первым входом сумматора (536) по модулю два, на второй вход которого поступает значение (508) общего знака с выхода блока (509) поиска минимумов, а выход сумматора (536) по модулю два соединен с входом выбора мультиплексора (522) константы, на нулевой вход которого поступает константное значение 1, а на первый вход константное значение -1, при этом выход мультиплексора константы (522) соединен с первым входом умножителя (529), второй вход которого соединен с выходом мультиплексора (521) значения, на нулевой и первый входы которого поступают первый (504) и второй (505) минимумы с выходов блока поиска минимумов (509), при этом выход (515) умножителя (529) соединен с входом общего сумматора (516), вход которого соединен с входом декодера, а по меньшей мере еще один вход соединен с выходом умножителя (529) текущей проверочной вершины (502), а выход общего сумматора (516) соединен с входом элемента памяти (524), выход которого является выходом декодера и соединен со вторым входом сумматора (528).
2. Способ функционирования декодера LDPC, в котором на первом этапе в каждой проверочной вершине (502) определяют два минимальных по модулю значения из всех приходящих сообщений (518 и 519) от символьных вершин (501) независимо от того, для какой символьной вершины они предназначаются, причем абсолютные значения минимумов (504, 505), а также знаки (506, 507) этих значений сохраняют в элементах памяти (503), при раздаче сообщения обратно к символьным, учитывают текущее сообщение от символьной вершины (518): если оно совпадает с одним из выбранных минимумов с учетом знака, то для этой вершины выбирают другой из двух минимумов для каждой из вершин, при каждой итерации сохраняют в элементах памяти (503) оба минимума по модулю (504, 505), оба знака этих минимумов (506, 507), а также общий знак всех сообщений (508), приходящих в проверочную вершину (502), сигнал отрицательного сообщения сохраняют в следующем виде:
тогда общий сигнал отрицательности (508) всех входящих сообщений вычисляют следующим образом:
где операция ⊕ - сложение по модулю 2,
сигнал выбора (510) одного из минимумов для сообщения от проверочной вершины к символьной формируют на выходе первого компаратора (511), исходя из найденных узлом MINIMUM (509) значений:
где
таким образом, модуль сообщения (514) от проверочной вершины к символьной формируют на выходе второго мультиплексора (521) следующим образом:
а так как знак формируют из общего знака всех сообщений, исключая сообщения от символьной вершины, для которой формируют сообщение на выходе второго компаратора (522), исключив из общего знака, знак отброшенного согласно (10) минимума:
где
- сигнал отрицательности, сформированный на выходе сумматора по модулю 2 (523),
на втором этапе оптимизации корректируют полную сумму для каждой из проверочных вершин от рассматриваемой символьной, при этом вычитают из полной суммы после элемента памяти (524) сообщение от этой вершины, запомненное на предыдущем шаге, все операции с сохраненными в элементах памяти (503) значениями минимумов и знаков выполняют (min 1_, min2_, neg1_, neg2_, neg_) аналогично выражениям (8-11), знак отрицательности (526) из выражения (12) формируют с помощью инвертора (527) с точностью до наоборот:
у сообщения меняют знак и складывают с полной суммой, при этом получают на выходе сумматора (528) скорректированное сообщение от символьной вершины.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2016125720A RU2634193C1 (ru) | 2016-06-28 | 2016-06-28 | Декодер ldpc и способ его функционирования |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2016125720A RU2634193C1 (ru) | 2016-06-28 | 2016-06-28 | Декодер ldpc и способ его функционирования |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2634193C1 true RU2634193C1 (ru) | 2017-10-24 |
Family
ID=60153918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2016125720A RU2634193C1 (ru) | 2016-06-28 | 2016-06-28 | Декодер ldpc и способ его функционирования |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2634193C1 (ru) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188426A (zh) * | 2007-12-05 | 2008-05-28 | 深圳国微技术有限公司 | 用于对准循环结构的ldpc码进行并行处理的译码器及方法 |
RU2382493C2 (ru) * | 2004-08-02 | 2010-02-20 | Квэлкомм Инкорпорейтед | Эффективные по использованию памяти способы декодирования кодов с низкой плотностью контроля по четности (ldpc) и устройства для осуществления этих способов |
US20110239086A1 (en) * | 2002-07-03 | 2011-09-29 | Dtvg Licensing, Inc. | Method and system for routing in low density parity check (ldpc) decoders |
US9136877B1 (en) * | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US20160105199A1 (en) * | 2014-10-10 | 2016-04-14 | Tidal Systems, Inc. | Fast mapping method for layered min-sum decoding of ldpc codes, |
-
2016
- 2016-06-28 RU RU2016125720A patent/RU2634193C1/ru active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110239086A1 (en) * | 2002-07-03 | 2011-09-29 | Dtvg Licensing, Inc. | Method and system for routing in low density parity check (ldpc) decoders |
RU2382493C2 (ru) * | 2004-08-02 | 2010-02-20 | Квэлкомм Инкорпорейтед | Эффективные по использованию памяти способы декодирования кодов с низкой плотностью контроля по четности (ldpc) и устройства для осуществления этих способов |
CN101188426A (zh) * | 2007-12-05 | 2008-05-28 | 深圳国微技术有限公司 | 用于对准循环结构的ldpc码进行并行处理的译码器及方法 |
US9136877B1 (en) * | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US20160105199A1 (en) * | 2014-10-10 | 2016-04-14 | Tidal Systems, Inc. | Fast mapping method for layered min-sum decoding of ldpc codes, |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102412847B (zh) | 用联合节点处理来解码低密度奇偶校验码的方法和设备 | |
US9319069B2 (en) | Reduced complexity non-binary LDPC decoding algorithm | |
Lin et al. | A reduced latency list decoding algorithm for polar codes | |
CN107919874B (zh) | 校验子计算基本校验节点处理单元、方法及其计算机程序 | |
Sarkis et al. | Increasing the speed of polar list decoders | |
KR20170097580A (ko) | 폴라 코딩 장치 | |
US10637510B2 (en) | Methods and devices for error correcting codes decoding | |
CN107979445B (zh) | 使用预先排序的输入的基于基本校验节点的校正子解码 | |
KR20150128750A (ko) | 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법 | |
EP3364578A1 (en) | Decoding method and decoder for low-density parity check code | |
KR101631128B1 (ko) | 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더 | |
US20170134048A1 (en) | Message-passing based decoding using syndrome information, and related methods | |
US20160049962A1 (en) | Method and apparatus of ldpc encoder in 10gbase-t system | |
Cheng et al. | Encoder and list decoder of Reed-Solomon kernel based polar codes | |
EP3408956B1 (en) | Apparatus and method for multi-code distributed storage | |
CN111034055A (zh) | 在非二进制ldpc解码器中简化的校验节点处理 | |
CN107615666A (zh) | Ldpc截短码的译码方法和译码设备 | |
US11201629B2 (en) | Low latency sequential list decoding of polar codes | |
CN103856218A (zh) | 译码处理方法及译码器 | |
RU2634193C1 (ru) | Декодер ldpc и способ его функционирования | |
US20150254130A1 (en) | Error correction decoder | |
RU168602U1 (ru) | Декодер ldpc | |
Sarkis et al. | Unrolled polar decoders, part ii: Fast list decoders | |
US11476870B2 (en) | Variable node processing methods and devices for message-passing decoding of non-binary codes | |
EP3841673B1 (en) | Apparatuses and methods for mapping frozen sets between product codes and component polar codes |