RU2634193C1 - Ldpc decoder and method of its functioning - Google Patents

Ldpc decoder and method of its functioning Download PDF

Info

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
Application number
RU2016125720A
Other languages
Russian (ru)
Inventor
Павел Сергеевич Поперечный
Андрей Александрович Беляев
Ярослав Ярославович Петричкович
Original Assignee
Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС")
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") filed Critical Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС")
Priority to RU2016125720A priority Critical patent/RU2634193C1/en
Application granted granted Critical
Publication of RU2634193C1 publication Critical patent/RU2634193C1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-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/1122Soft-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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full 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

FIELD: physics.
SUBSTANCE: essence of the claimed inventions consists in optimizing the decoder circuit and the method of its functioning, namely, the use of a minimum search node (509) and memory elements (503) for each validation node for all the edges originating from this validation node (502) to symbolic nodes (501), according to the graph. One common adder (516) of all messages (520 and 515) from the validation nodes according to the Tanner graph and a memory element (524) are used for each symbolic node, regardless of the edges originating from this symbolic node.
EFFECT: reducing hardware resources.
2 cl, 5 dwg

Description

Изобретение относится к области цифровой обработки информации, а именно к декодерам LDPC (Low density parity check - кодов с малой плотностью проверок на четность) и способам их функционирования, и может быть использовано для декодирования информации, закодированной кодом LDPC, в различных системах передачи/приема данных.The invention relates to the field of digital information processing, namely to LDPC (Low density parity check decoders - codes with a low density of parity checks) and methods of their functioning, and can be used to decode information encoded by the LDPC code in various transmission / reception systems data.

Коды LDPC относятся к блочному кодированию и широко используют в системах передачи информации. Данные коды позволяют исправлять множественные ошибки в блоках данных от нескольких бит до сотен килобайт (увеличение блока данных приводит к аппаратным сложностям).LDPC codes are block coding and are widely used in information transmission systems. These codes allow you to correct multiple errors in data blocks from a few bits to hundreds of kilobytes (increasing the data block leads to hardware difficulties).

В настоящее время данные коды LDPC массово используют в нескольких стандартах передачи данных. Последние достижения в технологии производства микроэлектроники позволяют аппаратно реализовать системы кодирования (декодирования) на основе кодов LDPC, что позволяет крайне близко подойти к границе Шеннона по пропускной способности.Currently, these LDPC codes are widely used in several data transfer standards. Recent advances in microelectronics manufacturing technology allow for hardware-based implementation of coding (decoding) systems based on LDPC codes, which allows extremely close access to the Shannon border in terms of throughput.

Как у любого блочного кода, основой декодирования является проверочная матрица. При больших длинах данных (десятки-сотни килобит) данная матрица имеет огромные размеры, однако суть кодов LDPC заключается в том, что количество единиц в строках и столбцах всегда не более определенного числа, гораздо меньшего размерности матрицы. Как правило, декодирование осуществляют при помощи графа Таннера, построенного согласно проверочной матрице. Существует несколько способов декодирования по надежностям, полученным при демодуляции принятых данных из зашумленного канала. Наиболее адаптированным способом для аппаратной реализации с минимальной потерей в корректирующей способности является алгоритм min-sum (минимум-сумма). В зависимости от применения существуют параллельный, последовательный и последовательно-параллельный способы реализации данного алгоритма. Наибольшей пропускной способностью является алгоритм, реализованный параллельным способом, то есть обменом вероятностью между символьными и проверочными вершинами графа Таннера. Данная реализация требует наибольшие аппаратные ресурсы.As with any block code, the basis of decoding is the verification matrix. With large data lengths (tens to hundreds of kilobits), this matrix is huge, but the essence of LDPC codes is that the number of units in rows and columns is always no more than a certain number, much smaller than the dimension of the matrix. As a rule, decoding is carried out using the Tanner graph constructed according to the verification matrix. There are several ways of decoding according to the reliability obtained by demodulating received data from a noisy channel. The most adapted way for a hardware implementation with minimal loss in corrective ability is the min-sum algorithm (minimum-sum). Depending on the application, there are parallel, serial and serial-parallel methods for implementing this algorithm. The greatest throughput is the algorithm implemented in a parallel way, that is, the probability exchange between the symbolic and test vertices of the Tanner graph. This implementation requires the most hardware resources.

Известен декодер LDPC, описанный в заявке US 2011/0239086 A1, в котором реализован алгоритм min-sum. Однако, в нем по каждому ребру от проверочной вершины к символьной вычисляют свое сообщение, что требует больших аппаратных ресурсов декодера. Аналогично, от символьной вершины к проверочным вычисляют сообщение, уникальное для каждой вершины, что также требует больших аппаратных ресурсов декодера, поэтому увеличивает его стоимость.Known LDPC decoder described in the application US 2011/0239086 A1, which implements the min-sum algorithm. However, in it, on each edge from the test vertex to the character vertex, a message is calculated, which requires large hardware resources of the decoder. Similarly, a message unique to each vertex is computed from the symbolic vertex to the verification ones, which also requires large hardware resources of the decoder, and therefore increases its cost.

В патенте RU 2382493 описан способ декодирования кодов LDPC, в котором узел проверочной вершины оптимизирован подобно заявленному изобретению в части вычисления двух минимумов, однако отсутствует элемент корректировки сообщения от символьной вершины к проверочной. Это значит, что в символьной вершине также вычисляют уникальные сообщения по каждому ребру, исходящему из вершины, что требует больших аппаратных ресурсов декодера, поэтому увеличивает его стоимость.RU 2382493 describes a method for decoding LDPC codes in which the node of the verification vertex is optimized similarly to the claimed invention in terms of computing two minima, however, there is no element for adjusting the message from the symbol vertex to the verification one. This means that in the symbolic vertex, unique messages are also calculated for each edge emanating from the vertex, which requires large hardware resources of the decoder, and therefore increases its cost.

Наиболее близкими к заявленному изобретению являются декодер LDPC и способ его функционирования, описанные в патенте CN 101188426 и выбранные в качестве прототипов заявленного изобретения, которые аналогичны способу, описанному в патенте RU 2382493, в части сохранения двух минимумов, однако в них значения хранят в буферах FIFO, что свидетельствует о последовательном режиме работы, и также отсутствует элемент корректировки сообщения от символьной вершины к проверочной, это свидетельствует о затрате большие аппаратных ресурсов декодера со стороны символьных вершин и, соответственно, об увеличении стоимости декодера.Closest to the claimed invention are the LDPC decoder and the method of its operation described in the patent CN 101188426 and selected as prototypes of the claimed invention, which are similar to the method described in patent RU 2382493, in terms of storing two minima, however, the values are stored in FIFO buffers in them , which indicates a sequential mode of operation, and there is also no element for adjusting the message from the symbolic vertex to the verification one, this indicates the expenditure of large decoder hardware resources from the side of the sim free peaks and, accordingly, to increase the cost of the decoder.

Задачей заявленного изобретения является создание декодера LDPC (Low density parity check - кодов с малой плотностью проверок на четность) и способа его функционирования с меньшими аппаратными ресурсами и, соответственно, с меньшей стоимостью, за счет оптимизации параллельного алгоритма min-sum, а именно за счет одного подсчета надежностей от проверочной вершины для символьных вершин с разницей только в коммутации этих значений для символьной вершины, а также за счет одного общего сумматора в каждой символьной вершине. Алгоритм min-sum является итеративным, в нем при каждой итерации пересчитывают надежности, первоначально принятые от демодулятора. От каждой проверочной вершины исходит надежность, подсчитанная по правилу для символьной вершины согласно графу Таннера (Фиг. 1). И, соответственно, наоборот, от каждой символьной вершины исходит надежность, подсчитанная по правилу для проверочной вершины.The objective of the claimed invention is the creation of an LDPC decoder (Low density parity check - codes with a low density of parity checks) and a method of its operation with less hardware resources and, accordingly, with a lower cost, due to the optimization of the parallel min-sum algorithm, namely, due to one calculation of reliability from the test vertex for symbolic vertices with a difference only in the switching of these values for a symbolic vertex, as well as due to one common adder in each symbolic vertex. The min-sum algorithm is iterative, in it, at each iteration, the reliability originally received from the demodulator is recounted. Reliability calculated from the rule for a symbol vertex according to the Tanner graph (Fig. 1) comes from each test vertex. And, accordingly, on the contrary, reliability is calculated from each symbol vertex calculated according to the rule for the verification vertex.

Поставленная задача решена путем создания декодера 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).The problem is solved by creating an LDPC decoder (Fig. 5), containing at least two common adders (516) with memory elements and at least two blocks (509) for searching two minima, the input of which is connected to the output of the adder (528) of the current symbol vertices (501) and at least one input connected to at least one adder (539) of another symbol vertex (541), and the outputs are connected to inputs of memory elements (503), the outputs of which are connected to the zero and first inputs of the multiplexer ( 532), the selection input of which is connected to the output element nta memory (534) that stores the value of the selection signal (510), and the output of the same memory element (534) is also connected to the input of the sign multiplexer (533), the zero and first inputs of which are connected to the outputs of the memory elements (503), configured storing the sign of the second and first (507, 506) minimum values of the output of the block (509) searching for two minima, and the output of the sign multiplexer (533) is connected to the input of the adder (523) modulo two, the second input of which is connected to the output of the memory element (503) configured to store a common character (508) with communication, and the output is connected to the input of the inverter (527), the output of which is connected to the input of the choice of the multiplexer (531) constant, the output of which is connected to the first input of the multiplier (530), the second input of which is connected to the output of the multiplexer (532), while the output the multiplier (530) is connected to the first input of the adder (528), the output of which is connected to the input of the minimum search unit (509) and to the first input of the comparator (511), the second input of which is connected to the output of the multiplier (512), to the second input of which the module the first minimum (504) from the output of the search block minima (509), and the first input receives a signal from the output of the multiplexer (513) of the constant, to the zero input of which the constant value 1 arrives, and the first input the constant value -1, the sign value of the first minimum goes to the input of the choice of this multiplexer (513) (506), while the output of the comparator (511) is connected to the input of the memory element (534), to the input of the choice of the multiplexer (521) of the value and the input of the choice of the multiplexer (535) of the sign, to the zero and first input of which the signs of the second (507) and the first (506) minimum from the output of the minimum search block ( 509), while the output of the multiplexer (535) of the sign is connected to the first input of the adder (536) modulo two, the second input of which receives the value (508) of the general sign from the output of the minima search unit (509), and the output of the adder (536) by module two is connected to the input of the choice of the constant multiplexer (522), to the zero input of which the constant value 1 is supplied, and the first input has the constant value -1, while the output of the constant multiplexer (522) is connected to the first input of the multiplier (529), the second input of which connected to the output of the multiplexer (521) values, to zero and the first inputs of which the first (504) and second (505) minima come from the outputs of the minimum search unit (509), while the output (515) of the multiplier (529) is connected to the input of the common adder (516), the input of which is connected to the input of the decoder, and at least one more input is connected to the output of the multiplier (529) of the current test vertex (502), and the output of the common adder (516) is connected to the input of the memory element (524), the output of which is the output of the decoder and connected to the second input of the adder (528 )

Поставленная задача решена также путем создания способа функционирования декодера LDPC (Фиг. 5), в котором на первом этапе в каждой проверочной вершине (502) определяют два минимальных по модулю значения из всех приходящих сообщений (518 и 519) от символьных вершин (501) независимо от того, для какой символьной вершины они предназначаются, причем абсолютные значения минимумов (504, 505), а также знаки (506, 507) этих значений, сохраняют в элементах памяти (503), при раздаче сообщения обратно к символьным, учитывают текущее сообщение от символьной вершины (518): если оно совпадает с одним из выбранных минимумов с учетом знака, то для этой вершины выбирают другой из двух минимумов для каждой из вершин, при каждой итерации сохраняют в элементах памяти (503) оба минимума по модулю (504, 505), оба знака этих минимумов (506, 507), а также общий знак всех сообщений (508), приходящих в проверочную вершину (502), сигнал отрицательного сообщения сохраняют в следующем виде:The problem was also solved by creating a method of functioning of the LDPC decoder (Fig. 5), in which at the first stage in each verification vertex (502) two minimum modulo values from all incoming messages (518 and 519) from symbol vertices (501) are determined independently from what symbol vertices they are intended for, and the absolute values of the minima (504, 505), as well as the signs (506, 507) of these values, are stored in memory elements (503), when distributing the message back to the symbolic ones, the current message from symbolic vertex (518): ec and it coincides with one of the selected minima, taking into account the sign, then for this vertex, choose the other of two minima for each of the vertices, at each iteration, store both minima modulo (504, 505) in the memory elements (503), both signs of these minima (506, 507), as well as the common sign of all messages (508) arriving at the verification vertex (502), the negative message signal is stored in the following form:

Figure 00000001
Figure 00000001

тогда общий сигнал отрицательности (508) всех входящих сообщений вычисляют следующим образом:then the common negative signal (508) of all incoming messages is calculated as follows:

Figure 00000002
Figure 00000002

где операция

Figure 00000003
- сложение по модулю 2,where is the operation
Figure 00000003
- addition modulo 2,

сигнал выбора (510) одного из минимумов для сообщения от проверочной вершины к символьной формируют на выходе первого компаратора (511), исходя из найденных узлом MINIMUM (509) значений:the selection signal (510) of one of the minima for the message from the test vertex to the symbolic one is generated at the output of the first comparator (511) based on the values found by the MINIMUM node (509):

Figure 00000004
Figure 00000004

где

Figure 00000005
- значение с выхода первого мультиплексора знака (513), (9)Where
Figure 00000005
- value from the output of the first sign multiplexer (513), (9)

таким образом, модуль сообщения (514) от проверочной вершины к символьной формируют на выходе второго мультиплексора (521) следующим образом:Thus, the message module (514) from the verification vertex to the symbol one is formed at the output of the second multiplexer (521) as follows:

Figure 00000006
Figure 00000006

а так как знак формируют из общего знака всех сообщений, исключая сообщения от символьной вершины, для которой формируют сообщение на выходе второго компаратора (522), исключив из общего знака, знак отброшенного согласно (10) минимума:and since the sign is formed from the common sign of all messages, excluding messages from the symbolic vertex, for which a message is generated at the output of the second comparator (522), excluding from the common sign the sign of the discarded minimum according to (10):

Figure 00000007
Figure 00000007

где

Figure 00000008
Where
Figure 00000008

- сигнал отрицательности, сформированный на выходе сумматора по модулю 2 (523), сформированные сообщения

Figure 00000009
(520) от каждой проверочной вершины (502) согласно графу Таннера посылают на входы общего сумматора (516) символьной вершины (501), так что на его выходе формируют значение согласно (4):
Figure 00000010
которое при каждой итерации сохраняют в элемент памяти (524), выход которого является выходом декодера (525);- negativity signal generated at the output of the adder modulo 2 (523), generated messages
Figure 00000009
(520) from each test vertex (502), according to the Tanner graph, is sent to the inputs of the common adder (516) of the symbol vertex (501), so that the value according to (4) is generated at its output:
Figure 00000010
which at each iteration is stored in a memory element (524), the output of which is the output of the decoder (525);

на втором этапе оптимизации корректируют полную сумму для каждой из проверочных вершин от рассматриваемой символьной, при этом вычитают из полной суммы после элемента памяти (524) сообщение от этой вершины, запомненное на предыдущем шаге, все операции с сохраненными в элементах памяти (503) значениями минимумов и знаков выполняют (min 1_, min 2_, neg1_, neg2_, neg_) аналогично выражениям (8-11), знак отрицательности (526) из выражения (12) формируют с помощью инвертора (527) с точностью до наоборот:at the second stage of optimization, the total amount for each of the test vertices is corrected from the considered symbol, while the message from this vertex stored in the previous step, all operations with the minimum values stored in the memory elements (503) are subtracted from the total sum after the memory element (524) and signs are performed (min 1_, min 2_, neg1_, neg2_, neg_) similarly to expressions (8-11), the negative sign (526) from expression (12) is formed using the inverter (527) exactly the opposite:

Figure 00000011
Figure 00000011

у сообщения меняют знак и складывают с полной суммой, при этом получают на выходе сумматора (528) скорректированное сообщение от символьной вершины.the sign of the message is changed and added up with the total amount, while receiving the corrected message from the symbolic vertex at the output of the adder (528).

Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими чертежами.For a better understanding of the claimed invention the following is a detailed description with the corresponding drawings.

Фиг. 1 - пример графа Таннера.FIG. 1 is an example of Count Tanner.

Фиг. 2 - схема сообщений от символьной вершины к проверочным после инициализации, выполненная согласно изобретению.FIG. 2 is a message diagram from the symbolic vertex to the verification ones after initialization, made according to the invention.

Фиг. 3 - схема сообщений от проверочной вершины С2 к символьным D0 (а) и D3 (б), выполненная согласно изобретению.FIG. 3 is a message diagram from test vertex C2 to symbolic D0 (a) and D3 (b), made according to the invention.

Фиг. 4 - схема сообщений от символьной вершины D1 к проверочным С0 (а) и С1 (б), выполненная согласно изобретению.FIG. 4 is a message diagram from the symbolic vertex D1 to test C0 (a) and C1 (b), made according to the invention.

Фиг. 5 - функциональная схема декодера (с коммутацией сообщений между проверочными и символьными вершинами), выполненная согласно изобретению.FIG. 5 is a functional diagram of a decoder (with message switching between test and symbol vertices) made according to the invention.

Рассмотрим кратко принцип работы заявленного изобретения (Фиг. 2-4). Декодирование по алгоритму min-sum начинают с инициализации элементов памяти символьных вершин значениями априорного отношения правдоподобий (201), поступающих от демодулятора (Фиг. 2):Consider briefly the principle of operation of the claimed invention (Fig. 2-4). Decoding according to the min-sum algorithm begins with the initialization of the memory elements of symbolic vertices with the values of the a priori likelihood ratio (201) coming from the demodulator (Fig. 2):

Figure 00000012
Figure 00000012

где Un - априорное отношение правдоподобий принятого символа n от демодулятора,where U n - a priori likelihood ratio of the received symbol n from the demodulator,

N - длина кодового слова,N is the length of the code word,

deg(n) - степень вершины - количество исходящих ребер от символьной вершины,deg (n) - degree of a vertex - the number of outgoing edges from a symbolic vertex,

Figure 00000013
- сообщение для конкретной проверочной вершины ki (203) от текущей символьной вершины n (202).
Figure 00000013
- a message for a particular test vertex k i (203) from the current symbolic vertex n (202).

Далее обновляют информацию, исходящую от проверочных вершин (303), по следующему правилу (Фиг. 3):Next, update the information coming from the test vertices (303), according to the following rule (Fig. 3):

Figure 00000014
Figure 00000014

где функция g(…) - определяет минимальное по модулю значение с общим знаком из всех аргументов, так что:where the function g (...) - determines the minimum modulo value with a common sign from all arguments, so that:

Figure 00000015
Figure 00000015

Figure 00000016
Figure 00000016

где

Figure 00000017
Where
Figure 00000017

Стоит заметить, что среди аргументов функции поиска минимального значения для конкретной символьной вершины (302) отсутствует собственно сообщение от этой символьной вершины. Таким образом, от одной проверочной вершины к символьным исходят разные сообщения о минимуме, поэтому облако комбинационной логики (305) получается разным для каждого исходящего ребра (306) (Фиг. 3).It is worth noting that among the arguments of the minimum value search function for a particular symbolic vertex (302), there is actually no message from this symbolic vertex. Thus, different messages about the minimum emanate from one test vertex to the symbolic vertices; therefore, the combinational logic cloud (305) is different for each outgoing edge (306) (Fig. 3).

Далее обновляют все символьные вершины (402) с учетом полученных сообщений от всех проверочных вершин (403), вычисленных согласно выражению (2):Then, all symbolic vertices (402) are updated taking into account the received messages from all verification vertices (403) calculated according to expression (2):

Figure 00000018
Figure 00000018

В следующей итерации сообщения (404) от символьных вершин к проверочным вычисляют в зависимости от того, к какой проверочной вершине они следуют:In the next iteration, messages (404) from symbolic vertices to verification vertices are calculated depending on which verification vertex they follow:

Figure 00000019
Figure 00000019

Аналогично сообщениям от проверочных вершин, сообщения (404) от символьных вершин для конкретной проверочной вершины в своей сумме не содержат сообщения собственно от этой проверочной вершины. Таким образом, от одной символьной вершины к проверочным исходят разные сообщения о сумме, поэтому облако комбинационной логики (405) получается разным для каждого исходящего ребра (406) (Фиг. 4).Similarly to messages from test vertices, messages (404) from symbolic vertices for a particular test vertex do not in total contain messages from this test vertex. Thus, from one symbolic vertex to the verification ones, different messages about the sum come out, so the combinational logic cloud (405) turns out to be different for each outgoing edge (406) (Fig. 4).

Рассмотрим более подробно вариант выполнения заявленного декодера, показанный на Фиг. 5 и способ его функционирования.Let us consider in more detail the embodiment of the inventive decoder shown in FIG. 5 and the method of its operation.

Ввиду того, что для каждого ребра из каждой проверочной вершины согласно графу Таннера необходима своя функция нахождения минимума, аппаратные ресурсы будут крайне велики. В заявленном изобретении оптимизирован данный алгоритм с целью уменьшения аппаратных ресурсов.Due to the fact that for each edge from each test vertex, according to the Tanner graph, its own function of finding the minimum is necessary, the hardware resources will be extremely large. In the claimed invention, this algorithm is optimized in order to reduce hardware resources.

Если рассматривать путь сообщений от проверочных вершин (303) к символьным (302), то согласно выражению (2) для символьной вершины ni (302) необходимо найти минимум из всех приходящих в проверочную вершину k сообщений от символьных вершин кроме ni. И так далее, для ni+1 участвуют все сообщения кроме сообщения от ni+1 (Фиг. 3 а, б).If we consider the message path from the verification vertices (303) to the symbolic ones (302), then according to expression (2) for the symbolic vertex n i (302), it is necessary to find the minimum of all messages arriving at the verification vertex k from symbolic vertices except n i . And so on, for the n i + 1 includes all messages except the messages from the n i + 1 (Fig. 3 a, b).

Первый этап оптимизации заключается в определении двух минимальных (по модулю) значений из всех приходящих сообщений (518 и 519) от символьных вершин независимо о того, для какой символьной вершины они предназначаются, при этом существенном снижении аппаратных ресурсов. Абсолютные значения минимумов (504, 505), а также знаки (506, 507) этих значений сохраняют в элементах памяти (503). При раздаче сообщения обратно к символьным, учитывают текущее сообщение от символьной вершины (518): если оно совпадает с одним из выбранных минимумов с учетом знака, то для этой вершины выбирают другой из двух минимумов для каждой из вершин. При каждой итерации сохраняют в элементах памяти (503) оба минимума по модулю (504, 505), оба знака этих минимумов (506, 507), а также общий знак всех сообщений (508), приходящих в проверочную вершину (502). Сигнал отрицательного сообщения сохраняют в следующем виде:The first stage of optimization consists in determining two minimum (modulo) values from all incoming messages (518 and 519) from symbolic vertices, regardless of which symbolic vertices they are intended for, while significantly reducing hardware resources. The absolute values of the minima (504, 505), as well as the signs (506, 507) of these values are stored in memory elements (503). When distributing the message back to the symbolic ones, the current message from the symbolic vertex is taken into account (518): if it coincides with one of the selected minima taking into account the sign, then the other of the two minima for each vertex is selected for this vertex. At each iteration, both minima (504, 505), both minima of the minima (506, 507), and the common sign of all messages (508) arriving at the verification vertex (502) are stored in memory elements (503). The negative message signal is stored as follows:

Figure 00000020
Figure 00000020

тогда общий сигнал отрицательности (508) всех входящих сообщений вычисляют следующим образом:then the common negative signal (508) of all incoming messages is calculated as follows:

Figure 00000021
Figure 00000021

где операция

Figure 00000022
- сложение по модулю 2.where is the operation
Figure 00000022
- addition modulo 2.

Сигнал выбора (510) одного их минимумов для сообщения от проверочной вершины к символьной формируют на выходе первого компаратора (511), исходя из найденных узлом MINIMUM (509) значений:The selection signal (510) of one of the minima for the message from the test vertex to the symbolic one is generated at the output of the first comparator (511) based on the values found by the MINIMUM node (509):

Figure 00000023
Figure 00000023

где

Figure 00000024
- значение с выхода первого мультиплексора знака (513). (9)Where
Figure 00000024
- the value from the output of the first sign multiplexer (513). (9)

Таким образом, модуль сообщения (514) от проверочной вершины к символьной формируют на выходе второго мультиплексора (521) следующим образом:Thus, the message module (514) from the test vertex to the character is formed at the output of the second multiplexer (521) as follows:

Figure 00000025
Figure 00000025

а так как знак формируют из общего знака всех сообщений, исключая сообщения от символьной вершины, для которой формируют сообщение на выходе второго компаратора (522), исключив из общего знака, знак отброшенного согласно (10) минимума:and since the sign is formed from the common sign of all messages, excluding messages from the symbolic vertex, for which a message is generated at the output of the second comparator (522), excluding from the common sign the sign of the discarded minimum according to (10):

Figure 00000026
Figure 00000026

где

Figure 00000027
Where
Figure 00000027

- сигнал отрицательности, сформированный на выходе сумматора по модулю 2 (523).- the negativity signal generated at the output of the adder modulo 2 (523).

Сформированные таким образом сообщения

Figure 00000028
(520) от каждой проверочной вершины (502) согласно графу Таннера посылают на входы общего сумматора (516) символьной вершины (501), так что на его выходе формируют значение согласно (4):Messages thus generated
Figure 00000028
(520) from each test vertex (502), according to the Tanner graph, is sent to the inputs of the common adder (516) of the symbol vertex (501), so that the value according to (4) is generated at its output:

Figure 00000029
, которое после нескольких итераций сохраняют в элемент памяти (524), выход которого является выходом декодера (525).
Figure 00000029
which, after several iterations, is stored in a memory element (524), the output of which is the output of the decoder (525).

Второй этап оптимизации состоит в том, что в каждой символьной вершине (501) хранится полная сумма всех сообщений (520), согласно графу, от проверочных вершин, вне зависимости для какой из проверочных вершин она предназначена. Однако согласно выражению (5) для проверочной вершины (502) предназначена сумма сообщений от проверочных вершин, кроме этой проверочной вершины (502). В схеме на Фиг. 5 предусмотрена корректировка полной суммы для каждой из проверочных вершин от рассматриваемой символьной. Вычитают из полной суммы после элемента памяти (524) сообщение от этой вершины, запомненное на предыдущем шаге. Все операции с сохраненными в элементах памяти (503) значениями минимумов и знаков выполняют (min1_, min2_, neg1_, neg2_, neg_) аналогично выражениям (8-11). Нижнее подчеркивание перед индексом означает, что это значение после элемента памяти (503). Знак отрицательности (526) из выражения (12) формируют с помощью инвертора (527) с точностью до наоборот:The second stage of optimization consists in the fact that in each symbol vertex (501) the total sum of all messages (520), according to the graph, from the verification vertices is stored, regardless of which of the verification vertices it is intended for. However, according to expression (5), for the verification vertex (502), the sum of messages from the verification vertices is intended, except for this verification vertex (502). In the circuit of FIG. 5 provides for the correction of the total amount for each of the test vertices from the considered symbol. Subtract from the total amount after the memory element (524) the message from this vertex, memorized in the previous step. All operations with the values of minima and signs stored in memory elements (503) are performed (min1_, min2_, neg1_, neg2_, neg_) similarly to expressions (8-11). An underscore before the index means that it is after the memory element (503). The negative sign (526) from the expression (12) is formed using the inverter (527) exactly the opposite:

Figure 00000030
Figure 00000030

Так как от общей суммы необходимо вычесть сообщение от данной вершины, поэтому у сообщения меняют знак и складывают с полной суммой, при этом получают на выходе сумматора (528) скорректированное сообщение.Since it is necessary to subtract the message from the given vertex from the total amount, therefore, the sign of the message is changed and added up with the total amount, and the corrected message is received at the output of the adder (528).

Сущность заявленного изобретения заключается в оптимизации схемы декодера и способа его функционирования, а именно использования для каждой проверочной вершины одного узла (данный узел выделен пунктиром на Фиг. 5) поиска минимумов (509) и элементов памяти (503) для всех ребер, исходящих из этой проверочной вершины (502) к символьным (501) согласно графу. И для каждой символьной вершины используют один общий сумматор (516) всех сообщений (520 и 515) от проверочных вершин согласно графу Таннера и элемент памяти (524) (узел выделен сплошной линией) вне зависимости от ребер, исходящих из этой символьной вершины. По каждому ребру необходима схема коммутации сообщений, однако данная схема проста в реализации (выделено жирным штрихпунктирном).The essence of the claimed invention is to optimize the decoder circuit and the method of its operation, namely the use for each test vertex of one node (this node is indicated by the dotted line in Fig. 5) to search for the minima (509) and memory elements (503) for all edges coming from this Verification vertices (502) to symbolic (501) according to the graph. And for each symbol vertex, one common adder (516) of all messages (520 and 515) from the verification vertices according to the Tanner graph and a memory element (524) (the node is marked with a solid line) are used, regardless of the edges coming from this symbol vertex. A message switching scheme is required for each edge, however this scheme is easy to implement (highlighted in bold dot-and-dash).

Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.Although the above-described embodiment of the invention has been set forth to illustrate the present invention, it is clear to those skilled in the art that various modifications, additions and substitutions are possible without departing from the scope and meaning of the present invention disclosed in the attached claims.

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).1. An LDPC decoder comprising at least two common adders (516) with memory elements and at least two blocks of searching for two minima, the input of which is connected to the output of the adder (528) of the current symbolic vertex (501) and at least one more input is connected to at least one other adder (539) of another symbol vertex (541), and the outputs are connected to the inputs of memory elements (503), the outputs of which are connected to the zero and first inputs of the multiplexer (532), the selection input of which is connected to the output of a memory element (534) that stores the value of the selection signal ( 510), and the output of the same memory element (534) is also connected to the input of the sign multiplexer (533), the zero and first inputs of which are connected to the outputs of the memory elements (503), configured to store the sign of the second and first (507, 506) minimum the output value of the two minima search block (509), and the output of the sign multiplexer (533) is connected modulo two to the adder input (523), the second input of which is connected to the output of the memory element (503), which is capable of storing a common message sign (508) , and the output is connected to the inverter input (527), in the path of which is connected to the input of the choice of the constant multiplexer (531), the output of which is connected to the first input of the multiplier (530), the second input of which is connected to the output of the multiplexer (532), while the output of the multiplier (530) is connected to the first input of the adder (528) whose output is connected to the input of the minimum search unit (509) and to the first input of the comparator (511), the second input of which is connected to the output of the multiplier (512), the second input of which receives the first minimum module (504) from the output of the minimum search unit (509) ), and the first input receives a signal the output of the multiplexer (513) is a constant, at the zero input of which a constant value of 1 is supplied, and the first input has a constant value of -1, the sign value of the first minimum (506) is received at the input of the selection of this multiplexer (513), while the output of the comparator (511) is connected with the input of the memory element (534), with the input of the choice of the multiplexer (521) of the value and the input of the choice of the multiplexer (535) of the sign, the signs of the second (507) and first (506) minima from the output of the minima search block come to the zero and first input ), while the output of the multiplexer (535) sign connection is connected with the first input of the adder (536) modulo two, the second input of which receives the value (508) of the common sign from the output of the minima search unit (509), and the output of the adder (536) modulo two is connected to the input of the choice of the multiplexer (522) of constant , at the zero input of which a constant value of 1 arrives, and at the first input, a constant value of -1, while the output of the constant multiplexer (522) is connected to the first input of the multiplier (529), the second input of which is connected to the output of the multiplexer (521), to zero and the first inputs of which the first (504) and T a minimum (505) of the minima from the outputs of the minimum search unit (509), while the output (515) of the multiplier (529) is connected to the input of the common adder (516), the input of which is connected to the input of the decoder, and at least one more input is connected to the output a multiplier (529) of the current check top (502), and the output of the common adder (516) is connected to the input of the memory element (524), the output of which is the output of the decoder and connected to the second input of the adder (528). 2. Способ функционирования декодера LDPC, в котором на первом этапе в каждой проверочной вершине (502) определяют два минимальных по модулю значения из всех приходящих сообщений (518 и 519) от символьных вершин (501) независимо от того, для какой символьной вершины они предназначаются, причем абсолютные значения минимумов (504, 505), а также знаки (506, 507) этих значений сохраняют в элементах памяти (503), при раздаче сообщения обратно к символьным, учитывают текущее сообщение от символьной вершины (518): если оно совпадает с одним из выбранных минимумов с учетом знака, то для этой вершины выбирают другой из двух минимумов для каждой из вершин, при каждой итерации сохраняют в элементах памяти (503) оба минимума по модулю (504, 505), оба знака этих минимумов (506, 507), а также общий знак всех сообщений (508), приходящих в проверочную вершину (502), сигнал отрицательного сообщения сохраняют в следующем виде:2. The method of operation of the LDPC decoder, in which at the first stage in each test node (502) two minimum modulo values are determined from all incoming messages (518 and 519) from symbol nodes (501), regardless of which symbol nodes they are intended for moreover, the absolute values of the minima (504, 505), as well as the signs (506, 507) of these values are stored in memory elements (503), when distributing the message back to the character, take into account the current message from the character vertex (518): if it matches one of the selected lows given sign, then for this vertex, choose the other of two minima for each of the vertices, at each iteration, store both minima modulo (504, 505) in memory elements (503), both signs of these minima (506, 507), as well as the common sign of all messages (508) arriving at the verification vertex (502), the negative message signal is stored in the following form:
Figure 00000031
Figure 00000031
тогда общий сигнал отрицательности (508) всех входящих сообщений вычисляют следующим образом:then the common negative signal (508) of all incoming messages is calculated as follows:
Figure 00000032
Figure 00000032
где операция ⊕ - сложение по модулю 2,where the operation ⊕ is addition modulo 2, сигнал выбора (510) одного из минимумов для сообщения от проверочной вершины к символьной формируют на выходе первого компаратора (511), исходя из найденных узлом MINIMUM (509) значений:the selection signal (510) of one of the minima for the message from the test vertex to the symbolic one is generated at the output of the first comparator (511) based on the values found by the MINIMUM node (509):
Figure 00000033
Figure 00000033
где Where
Figure 00000034
- значение с выхода первого мультиплексора знака (513) (9)
Figure 00000034
- value from the output of the first sign multiplexer (513) (9)
таким образом, модуль сообщения (514) от проверочной вершины к символьной формируют на выходе второго мультиплексора (521) следующим образом:Thus, the message module (514) from the verification vertex to the symbol one is formed at the output of the second multiplexer (521) as follows:
Figure 00000035
Figure 00000035
а так как знак формируют из общего знака всех сообщений, исключая сообщения от символьной вершины, для которой формируют сообщение на выходе второго компаратора (522), исключив из общего знака, знак отброшенного согласно (10) минимума:and since the sign is formed from the common sign of all messages, excluding messages from the symbolic vertex, for which a message is generated at the output of the second comparator (522), excluding from the common sign the sign of the discarded minimum according to (10):
Figure 00000036
Figure 00000036
гдеWhere
Figure 00000037
Figure 00000037
- сигнал отрицательности, сформированный на выходе сумматора по модулю 2 (523),- the negativity signal generated at the output of the adder modulo 2 (523), сформированные сообщения
Figure 00000038
(520) от каждой проверочной вершины (502) согласно графу Таннера посылают на входы общего сумматора (516) символьной вершины (501), так что на его выходе формируют значение согласно (4):
formed messages
Figure 00000038
(520) from each test vertex (502), according to the Tanner graph, is sent to the inputs of the common adder (516) of the symbol vertex (501), so that the value according to (4) is generated at its output:
Figure 00000039
, которое при каждой итерации сохраняют в элемент памяти (524), выход которого является выходом декодера (525);
Figure 00000039
, which at each iteration is stored in a memory element (524), the output of which is the output of the decoder (525);
на втором этапе оптимизации корректируют полную сумму для каждой из проверочных вершин от рассматриваемой символьной, при этом вычитают из полной суммы после элемента памяти (524) сообщение от этой вершины, запомненное на предыдущем шаге, все операции с сохраненными в элементах памяти (503) значениями минимумов и знаков выполняют (min 1_, min2_, neg1_, neg2_, neg_) аналогично выражениям (8-11), знак отрицательности (526) из выражения (12) формируют с помощью инвертора (527) с точностью до наоборот:at the second stage of optimization, the total amount for each of the test vertices is corrected from the considered symbol, while the message from this vertex stored in the previous step, all operations with the minimum values stored in the memory elements (503) are subtracted from the total sum after the memory element (524) and signs are performed (min 1_, min2_, neg1_, neg2_, neg_) similarly to expressions (8-11), the negative sign (526) from expression (12) is formed using the inverter (527) exactly the opposite:
Figure 00000040
Figure 00000040
у сообщения меняют знак и складывают с полной суммой, при этом получают на выходе сумматора (528) скорректированное сообщение от символьной вершины.the sign of the message is changed and added up with the total amount, while receiving the corrected message from the symbolic vertex at the output of the adder (528).
RU2016125720A 2016-06-28 2016-06-28 Ldpc decoder and method of its functioning RU2634193C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2016125720A RU2634193C1 (en) 2016-06-28 2016-06-28 Ldpc decoder and method of its functioning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016125720A RU2634193C1 (en) 2016-06-28 2016-06-28 Ldpc decoder and method of its functioning

Publications (1)

Publication Number Publication Date
RU2634193C1 true RU2634193C1 (en) 2017-10-24

Family

ID=60153918

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016125720A RU2634193C1 (en) 2016-06-28 2016-06-28 Ldpc decoder and method of its functioning

Country Status (1)

Country Link
RU (1) RU2634193C1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188426A (en) * 2007-12-05 2008-05-28 深圳国微技术有限公司 Decoder for parallel processing of LDPC code of aligning cycle structure and its method
RU2382493C2 (en) * 2004-08-02 2010-02-20 Квэлкомм Инкорпорейтед Memory-saving low-density parity-check (ldpc) methods and device for realsing said methods
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,

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 (en) * 2004-08-02 2010-02-20 Квэлкомм Инкорпорейтед Memory-saving low-density parity-check (ldpc) methods and device for realsing said methods
CN101188426A (en) * 2007-12-05 2008-05-28 深圳国微技术有限公司 Decoder for parallel processing of LDPC code of aligning cycle structure and its method
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
US9319069B2 (en) Reduced complexity non-binary LDPC decoding algorithm
Lin et al. A reduced latency list decoding algorithm for polar codes
CN107919874B (en) Syndrome computation basic check node processing unit, method and computer program
Sarkis et al. Increasing the speed of polar list decoders
KR20170097580A (en) Apparatus for polar coding
CN107979445B (en) Syndrome decoding based on basic check nodes using pre-ordered inputs
US10637510B2 (en) Methods and devices for error correcting codes decoding
KR20150128750A (en) Systems and methods for decoding with late reliability information
EP3364578A1 (en) Decoding method and decoder for low-density parity check code
Schläfer et al. Syndrome based check node processing of high order NB-LDPC decoders
US20170134048A1 (en) Message-passing based decoding using syndrome information, and related methods
US20160049962A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
KR101631128B1 (en) Ldpc decoder with a variable node updater which uses a scaling constant
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 (en) Simplified check node processing in non-binary LDPC decoders
CN107615666A (en) The interpretation method and decoding equipment of LDPC shortened codes
CN103856218A (en) Decoding processing method and decoder
RU2634193C1 (en) Ldpc decoder and method of its functioning
US20200295787A1 (en) Low latency sequential list decoding of polar codes
Sarkis et al. Unrolled polar decoders, part ii: Fast list decoders
RU168602U1 (en) DECODER LDPC
US11476870B2 (en) Variable node processing methods and devices for message-passing decoding of non-binary codes
US20150254130A1 (en) Error correction decoder
US20190089375A1 (en) Convolutional ldpc decoding method and apparatus, decoder, and system