WO2020052754A1 - Simplified check node processing for ldpc decoding - Google Patents

Simplified check node processing for ldpc decoding Download PDF

Info

Publication number
WO2020052754A1
WO2020052754A1 PCT/EP2018/074667 EP2018074667W WO2020052754A1 WO 2020052754 A1 WO2020052754 A1 WO 2020052754A1 EP 2018074667 W EP2018074667 W EP 2018074667W WO 2020052754 A1 WO2020052754 A1 WO 2020052754A1
Authority
WO
WIPO (PCT)
Prior art keywords
values
value
received
decoder
subset
Prior art date
Application number
PCT/EP2018/074667
Other languages
French (fr)
Inventor
Wei Zhou
Michael Lentmaier
Sergei Semenov
Wenquan HU
Bengt Lindoff
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to PCT/EP2018/074667 priority Critical patent/WO2020052754A1/en
Publication of WO2020052754A1 publication Critical patent/WO2020052754A1/en

Links

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
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division

Definitions

  • the disclosure relates to a field of error correction, and more particularly to a decoder and a procedure for decoding low-density parity-check codes. Furthermore, the disclosure relates to a corresponding method and a computer program.
  • Low-density parity-check, LDPC, codes can be used widely, for example, in digital communications and storage systems. Data transmitted in communication systems or stored in storage systems can be corrupted by noise, and LDPC codes may be used to correct errors caused by this corruption. LDPC codes may achieve this by storing/transmitting parity check bits in addition to the original data bits. An objective of decoding LDPC codes is to reconstruct the original data from the corrupted noisy data.
  • the 3rd Generation Partnership Project, 3GPP has finalized the design of fifth generation, 5G, new radio, NR, LDPC codes for enhanced mobile broadband, eMBB, services.
  • 5G new radio
  • NR new radio
  • LDPC codes for enhanced mobile broadband
  • eMBB enhanced mobile broadband
  • two base graphs, BGs, BG1 and BG2 are considered in the NR eMBB implementation.
  • Both BG1 and BG2 consist of two parts, a core graph representing the high rate codes, as well as an extension graph which includes more parity bits for lower rate codes.
  • a decoder for decoding low-density parity-check codes is configured to: receive L-values to a check node, CN, from neighbouring variable nodes, VNs; select a first subset of L-values from the received L-values comprising s’-1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin; process the first subset of L-values in the CN to produce a first extrinsic L-value; pass the first extrinsic L-value to a neighbouring VN corresponding to Lmin; select a second subset of L-values from the received L-values comprising s received L-values with smallest magnitudes; process the second subset of L-values in the CN to produce
  • the decoder is further configured to: initialise L-values in the VNs according to received channel outputs; and transmit the initialised L-values from the VNs to the CN.
  • the decoder can, for example, use the channel outputs as a starting point for the decoding iteration.
  • the decoder is further configured to: calculate outgoing L-values from each VN to the CN by summing all L-values received to the VN excluding an L-value received from the CN.
  • the decoder can, for example, efficiently calculate the outgoing L-values in the VNs from the L-value received from the CNs.
  • s’-1 and/or s are preconfigured integer values.
  • the decoder can, for example, select the first and second subset of L-values using the preconfigured integer values.
  • an outgoing L-value of a VN is set to zero, if a sign of the outgoing L-value changes between two consecutive iterations.
  • the decoder can, for example, perform self-correction so that unreliable L-values are removed from the iteration. This may improve performance of the decoder.
  • s’-1 and/or s are configured according to a threshold, Lth, so that a magnitude of each L-value in the first subset and in the second subset is less or equal to Lth.
  • the decoder can, for example, select the first and second subset so that the sizes of the subsets scale according to the L-value magnitudes.
  • Lth is determined by Lmin and a factor b, wherein b indicates a proportion between Lth and Lmin.
  • the decoder can, for example, efficiently compute the value of Lth.
  • s’-1 and/or s are configured according to the number of L-values received to the CN, d c , and a factor l, wherein l indicates a proportion between d c and s or between d c and s’-1.
  • the decoder can, for example, select the first and second subset so that the sizes of the subsets scale according to the number of L-values received to the CN.
  • s ceil(kd c ).
  • the decoder is further configured to: rescale the L-values received to the CN by multiplying each received L-value by a factor.
  • a method comprises: receiving L-values to a check node, CN, from neighbouring variable nodes, VNs; selecting a first subset of L-values from the received L-values comprising s’-1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin; processing the first subset of L-values in the CN to produce a first extrinsic L-value; passing the first extrinsic L-value to a neighbouring VN corresponding to Lmin; selecting a second subset of L-values from the received L-values comprising s received L-values with smallest magnitudes; processing the second subset of L- values in the CN to produce a second L-value; and passing the second L-value to the neighbouring VNs excluding the VN corresponding to Lmin.
  • the method further comprises initialising L-values in the VNs according to received channel outputs; and transmitting the initialised L-values from the VNs to the CN.
  • the method further comprises calculating outgoing L-values from each VN to the CN by summing all L-values received to the VN excluding an L-value received from the CN.
  • s’-1 and/or s are preconfigured integer values.
  • the method further comprises setting an outgoing L-value of a VN to zero, if a sign of the outgoing L- value changes between two consecutive iterations.
  • the method further comprises configuring s’-1 and/or s according to a threshold, Lth, so that a magnitude of each L-value in the first subset and in the second subset is less or equal to Lth.
  • the method further comprises determining Lth by Lmin and a factor b, wherein b indicates a proportion between Lth and Lmin.
  • the method further comprises configuring s’-1 and/or s according to the number of L-values received to the CN, d c , and a factor l, wherein l indicates a proportion between d c and s or between d c and s’-1.
  • the method further comprises rescaling the L-values received to the CN by multiplying each received L-value by a factor.
  • a computer program comprising program code configured to perform a method according to the second aspect when the computer program is executed on a computer.
  • FIG. 1 illustrates a schematic representation of a decoder according to an embodiment
  • FIG. 2 illustrates a schematic representation of a Tanner graph according to an embodiment
  • FIG. 3 illustrates a schematic representation of Tanner graphs for check node and a variable node according to an embodiment
  • FIG. 4 illustrates a schematic representation of a Tanner graph of critical value processing according to an embodiment
  • FIG. 5 illustrates a schematic representation of a Tanner graph of non- critical value processing according to an embodiment
  • FIG. 6 illustrates a schematic representation of simulation results according to an embodiment
  • FIG. 7 illustrates a schematic representation of simulation results according to another embodiment
  • FIG. 8 illustrates a schematic representation of simulation results according to another embodiment
  • FIG. 9 illustrates a schematic representation of simulation results according to another embodiment
  • FIG. 10 illustrates a schematic representation of a table according to an embodiment
  • FIG. 11 illustrates a flow diagram of a method according to an embodiment.
  • FIG. 1 illustrates a schematic representation of a decoder 100 according to an embodiment.
  • the decoder 100 may comprise a processor 101 and a memory 102.
  • the decoder 100 may be a device or it may be part of a device.
  • the decoder 100 may be a mobile phone, or the decoder 100 may refer to a part of the mobile phone that implements decoding.
  • the decoder 100 may be implemented, for example, in software or in hardware.
  • the decoder 100 is configured to receive L- values to a check node, CN, from neighbouring variable nodes, VNs.
  • VNs and CNs may be implemented in software and may not respond to any physical components in the decoder 100.
  • the decoder 100 may be further configured to select a first subset of L-values from the received L- values comprising s’-1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin.
  • the decoder may then process the first subset of L-values in the CN to produce a first extrinsic L-value. This L- value may be referred to as a critical L-value.
  • the decoder 100 may then pass the first extrinsic L-value to a neighbouring VN corresponding to Lmin.
  • the decoder 100 may be further configured to select a second subset of L-values from the received L-values comprising s received L-values with smallest magnitudes.
  • the decoder 100 may be further configured to process the second subset of L-values in the CN to produce a second L-value. This L-value may be referred to as non-critical L-value.
  • the decoder 100 may be further configured to pass the second L-value to the neighbouring VNs excluding the VN corresponding to Lmin. Each VN may calculate a new L-value, and these L-values may be passed back to the CNs. This process may be iterated until a stopping criterion is met.
  • the decoder 100 may be part of, for example, a client device or a network access device in a wireless communication system.
  • the decoder 100 may be configured to perform the functionalities and operations relating to it as described in the embodiments. For example, a client device may transmit a message to a network access device using wireless communication and code the message using LDPC coding. The network access device may use the decoder 100 to decode such message.
  • a client device may be any of a User Equipment (UE) in Long Term Evolution (LTE) or 5G new radio (NR), mobile station (MS), wireless terminal, or mobile terminal which is enabled to communicate wirelessly in a wireless communication system, sometimes also referred to as a cellular radio system.
  • the client device may further be referred to as a mobile telephone, a cellular telephone, a computer tablet or a laptop with wireless capability.
  • the client device in the present context may be, for example, a portable, pocket-storable, hand-held, computer-comprised, or vehicle-mounted mobile device, enabled to communicate voice or data, via a radio access network, with another entity, such as another receiver or a server.
  • the client device 100 can be a Station (STA) which is any device that contains an IEEE 802.11 -conformant Media Access Control (MAC) and Physical Layer (PHY) interface to the Wireless Medium (WM).
  • STA Station
  • MAC Media Access Control
  • PHY Physical Layer
  • a network access device may be a transmission or reception point, TRP, or a NR 5G base station, gNB.
  • the network access device may be a base station, a (radio) network node or an access node or an access point or a base station, e.g., a Radio Base Station (RBS), which in some networks may be referred to as a transmitter, “eNB”, “eNodeB”, “gNB”, “gNodeB”, “NodeB”, or “B node”, depending on the technology and terminology used.
  • the radio network nodes may be of different classes such as, e.g., macro eNodeB, home eNodeB or pico base station, based on transmission power and thereby also cell size.
  • the radio network node can be a Station (STA) which is any device that contains an IEEE 802.11- conformant Media Access Control (MAC) and Physical Layer (PHY) interface to the Wireless Medium (WM).
  • STA Station
  • MAC Media Access Control
  • PHY
  • An LDPC code can be described by a sparse parity-check matrix H.
  • LDPC codes can also be represented by so called Tanner graphs.
  • a Tanner graph is a bipartite graph which consists of variable nodes, VNs, and check nodes, CNs.
  • VNs may also be referred to as digit nodes or bit nodes, and CNs may also be referred to as subcode nodes or parity nodes.
  • An example of a parity-check matrix may be
  • a Tanner graph corresponding to the matrix H above is presented in FIG. 2 according to an embodiment.
  • columns of H corresponds to connections of each VN 201
  • rows of H correspond to connections of each CN 202.
  • three first entries are ones.
  • the first VN 201 counting from the left, is connected to the three first CNs 202.
  • the entry in the ith row and yth column of H is one, then in the corresponding Tanner graph, the ith CN 202 and yth VN 201 are connected.
  • a VN 201 and a CN 202 are connected in a Tanner graph, they may be referred to as neighbouring nodes. For example, in FIG.
  • the first VN 201 is a neighbouring VN to the first, second, and third CNs 202.
  • the number of VNs 201 in the Tanner graph is the length N of the code
  • the number of CNs M is number of parity bits of the code.
  • An LDPC codeword at the receiver can be decoded into a reconstructed copy of transmitted codeword v.
  • log refers to the natural logarithm.
  • a set of L-values or a single L-value may be referred to as a message.
  • a channel can also output codeword L-values. This may be denoted by based on the received vector r.
  • LDPC decoding such as in the sum product, SP, decoding of LDPC codes
  • the CNs 202 and VNs 201 work in an iterative way, which can be illustrated in the Tanner graph representation of FIG. 3.
  • a so-called flooding schedule may be used. All VNs 201 process their input L-value and pass the extrinsic L-values to their neighbouring CNs 202.
  • the CNs 202 then process their input L-value and output extrinsic L-values to their neighbouring VNs 201.
  • the term“extrinsic” may indicate that the L-value is transmitted to another node. The procedure may repeat until a pre-set maximum number of iterations is reached or some stopping criterion is satisfied.
  • the decoder can then estimate the L-value for each bit v n , from which the more probable bit value may be deduced.
  • a so-called box-plus operation can be used by the VNs 201 and the CNs
  • the box-plus operation can be defined as
  • the L- values fed into an LDPC decoder can be modelled as a scaled version of the true received L-values. This may be referred to LLR mismatch and may cause performance degradation in LDPC decoding.
  • the computational complexity of LDPC decoding may be reduced using a so-called approximate min*, a-min*, algorithm.
  • the a-min* algorithm computes only two magnitudes of L-values per CN 202.
  • the Self- corrected Min-Sum (SCMS) algorithm performs the same CN processing as that of the MS algorithm and differs only in the VN processing.
  • CN processing for the ga-min* decoder is presented below according to an embodiment. This processing may be implemented by the decoder 100. This CN processing may be combined with some other processing steps performed, for example, in the VNs 201. For example, the CNs 202 may perform processing according to the steps presented below and then pass L-values produced in the processing to VNs 201. The VNs 201 may perform other processing and pass new L-values to the CNs. These steps may be iterated, for example, until a stopping criterion is met.
  • s'— 1 and s are preconfigured integer values.
  • VN n t indicates the VN whose L-value magnitude is the least out of L-values passed to CN m.
  • One of the L-values computed at CN processor is specially send to VN n 1 and the other L-value is sent to the rest of neighbouring VNs of CN m.
  • the L- values corresponding to these two magnitudes may be referred to as critical and non-critical L-values, respectively.
  • the decoder 100 may be configured to initialise L-values in the VNs according to received channel outputs and transmit the initialised L-values from the VNs to the CN.
  • L ch (v n ⁇ r) may be denoted by L n .
  • the outgoing L-values from a VN to its neighbouring CNs may be set as the channel L-values This may
  • the VNs may pass the L-values received from the channel to the CNs, and the CNs may process the L- values.
  • the ga-min* algorithm may be described using the following steps:
  • L n denotes L-values
  • S m ' may be referred to as a first subset
  • S m may be referred to as a second subset.
  • the magnitude of critical CN L-value to VN % may be computed by applying the box-plus operator to VNs in S’ m with an extrinsic sign that is the product of signs
  • N(m ) denotes the neighbours of CN m. These may also be referred to as VNs in the neighbourhood of CN m.
  • N(m )— n 1 denotes the set N ( m ) excluding the element n 1 .
  • this could be notated as
  • the magnitude of non-critical L-values to may be computed by applying the box-
  • the decoder 100 may be configured to calculate outgoing L-values from each VN to the CN by summing all L-values received to the VN excluding an L-value received from the CN.
  • the extrinsic L-values from VN n to CN M i are the sum of all L-values that VN n receives from neighboring CNs m 1 , m 2 , ..., excluding plus the L-values from channel L ch , as described by the following equation:
  • N(ri) denotes CNs in the neighbourhood of VN n.
  • the total LLR can be computed using the following equation:
  • the total LLR may be computed by summing the L-value received from the channel L n and L-values received from neighbouring CNs N(ri).
  • the aforementioned steps may be iterated multiple times. In each iteration,
  • VNs may pass L-values to CNs and vice versa.
  • the iteration may be stopped, when a stopping criterion is met.
  • An estimate of the bit value v n may be deduced from
  • the stopping criterion may be, for example or the number of iterations
  • FIG. 4 illustrates a schematic representation of a Tanner graph of the ga- min* algorithm for a critical L-value according to an embodiment.
  • FIG. 4 illustrates the procedure only for one CN 202 with five neighbouring VNs 201, V 1 , V 2 ... V 5 .
  • the magnitudes of L- values may enter a sorting block 203 where the L-values are sorted according their magnitudes.
  • the sorting block 203 may be implemented in software. The sorting may be needed so that L-values with smallest magnitudes can be used for the processing in the CN 202. Alternatively, the L-values with the least magnitude may be found using some procedure other than sorting.
  • a magnitude of an L-value may also be referred to as an absolute value or a modulus.
  • the VNs 201 may be denoted so that V n denotes the VN 201’ with the smallest L-value magnitude, and V n2 201 denotes the VN 201 with the second smallest L-value magnitude, and so on.
  • s' 4.
  • the subset S' 401 comprises L-values corresponding to VNs V n2 , V n3 , and V n4 .
  • the CN 202 may calculate an extrinsic L-value based on these three L-values and pass the extrinsic L-value 402 to the VN corresponding to the smallest L-value magnitude V ni 201
  • FIG. 5 illustrates a schematic representation of a Tanner graph of the ga min* algorithm for a non-critical L-value according to an embodiment.
  • the subset S 501 comprises L-values corresponding to VNs V ni , V n2 , and V nr Therefore, only L-values from V ni , V n2 , V n3 need to be passed into the CN 202, and the CN may calculate an L- value 502 based on these three L-values.
  • the CN 202 may then pass the L-value 502 to VNs 201 other than the VN 201’ corresponding to the smallest L-value magnitude, i.e. V n2 , V n3 , V n4 , and V n5 .
  • the L-values need to be sorted only once, and this sorted list may be used for the processing presented in FIG. 4 and FIG. 5.
  • the CN 202 can send the non-critical L-value 502 to VNs 201 other than This way, the
  • the ga-min* procedure has been described above with two parameters s and s'. Since s and s' represent the number of input L-values needed to be sorted, greater s or s' may make the sorting hardware more complex, meanwhile the resulting output may be more accurate. The value of s and s' should be chosen to have a good performance-complexity trade-off. Several embodiments for choosing the value of these two parameters and variants of the ga-min* procedure are given below. As a person skilled in the art can appreciate, configuring s' also configures s'— 1. Thus, these two terms may be used interchangeably.
  • s'— 1 and/or s are configured according to a threshold, Lth, so that a magnitude of each L-value in the first subset and in the second subset is less or equal to Lth.
  • s and/or s' can be dynamically determined by a threshold L th such that
  • Lth is determined by Lmin in and a factor b, wherein b indicates a proportion between Lth and Lmin.
  • L th can be determined using the factor b so that or Like
  • values processed by CN m , s or s’ comprises all i e ⁇ 1, 2, ... , d c ⁇ such that
  • s’-1 and/or s are configured according to the number of L-values received to the CN, d c , and a factor l, wherein l indicates a proportion between d c and s or between d c and s’-1.
  • s or s' can be based on the factor l and the degree d c of the CN m.
  • Degree refers to the number of neighbours connected to the CN m.
  • s ceil(ld c ), where ceil is the ceiling function.
  • the decoder 100 may be configured to rescale the L-values received to the CN 202 by multiplying each received L-value by a factor.
  • the input L-values may be rescaled by multiplying them by a factor m.
  • an outgoing L-value of a VN 201 is set to zero, if a sign of the outgoing L-value changes between two consecutive iterations.
  • VNs 201 may utilise so-called self-corrected, SC, processing.
  • SC processing may be combined with any embodiment described herein.
  • VN n may first compute a temporary L-value
  • the temporary L-value may get erased, i.e if there is a sign
  • the extrinsic L-value of the VN 201 is set to be equal to the temporary L-value l (L) n m . This way, unreliable L-values can be detected by sign fluctuation. By erasing these unreliable L-values, improved decoding performance may be achieved, and decoding may be robust even in noisy conditions.
  • FIG. 6 and FIG. 7 illustrate schematic representations of simulation results according to an embodiment.
  • additive white Gaussian noise, AWGN channel with binary phase-shift keying, BPSK, modulated transmission was used.
  • the block error rate, BLER was simulated down to approximately 10 -2 , since this may be the primary target rate in NR eMBB.
  • An LDPC code in each BG was selected with the lowest rate.
  • scga-min* refers to the ga-min* algorithm with SC processing.
  • Other simulated algorithms were, sum product, SP, approximate min*, a-min*, self-correcting a-min*, sca-min*, self-correcting minimum sum, SCMS, and normalised minimum sum, NMS.
  • FIG. 8 and FIG. 9 illustrate schematic representations of simulation results according to an embodiment.
  • the ga-min*, illustrated by curves 801 and 901, and scga-min*, illustrated by curves 803 and 903, seem to show superiority in performance compared to other iterative algorithms for both h values.
  • the ga-min* even outperforms the one in the absence of LLR mismatch by O.ldB, but it degrades drastically for LLR over-estimation.
  • FIG. 10 illustrates a schematic representation of a table 1000 comparing a number of box-plus operations between ga-min* and a-min* according to an embodiment.
  • the box-plus operator may be used only s times per CN, compared to d c — 1 times in a-min*.
  • Table of FIG. 10 illustrates a complexity comparison with respect to box-plus operation savings for various code rates of NR LDPC codes.
  • FIG. 11 illustrates a flow diagram of a method according to an embodiment.
  • L-values are received to a check node, CN, from neighbouring variable nodes, VNs.
  • a first subset of L-values is selected from the received L-values comprising .s’- 1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin.
  • processing the first subset of L-values is processed in the CN to produce a first extrinsic L-value.
  • the first extrinsic L-value is passed to a neighbouring VN corresponding to Lmin.
  • a second subset of L-values is selected from the received L-values comprising s received L-values with smallest magnitudes.
  • the second subset of L-values is processed in the CN to produce a second L-value.
  • the second L-value is passed to the neighbouring VNs excluding the VN corresponding to Lmin.
  • the steps 1 100-1112 may be implemented by the decoder 100 discussed in relation to FIG. 1.
  • the decoder 100 comprises the processor 101 configured by the program code when executed to execute the embodiments of the operations and functionality described.
  • the functionality described herein can be performed, at least in part, by one or more hardware logic components.
  • illustrative types of hardware logic components include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), Graphics Processing Units (GPUs).

Abstract

Low-density parity-check, LDPC, codes may be used to transmit and/or store information in environments, where the information may be corrupted due to, for example, noise. The originally transmitted/stored information may be retrieved using an LDPC decoder. According to an embodiment, a decoder for decoding LDPC codes is configured to receive L-values to a check node, CN, from neighbouring variable nodes, VNs, process a first subset of L-values in the CN to produce a first L-value, and process a second subset of L-values in the CN to produce a second L-value. The first L-value may be passed to a neighbouring VN corresponding to a smallest L-value magnitude, and the second L-value may be passed to other neighbouring VNs.

Description

SIMPLIFIED CHECK NODE PROCESSING FOR LDPC DECODING
TECHNICAL FIELD
The disclosure relates to a field of error correction, and more particularly to a decoder and a procedure for decoding low-density parity-check codes. Furthermore, the disclosure relates to a corresponding method and a computer program.
BACKGROUND
Low-density parity-check, LDPC, codes can be used widely, for example, in digital communications and storage systems. Data transmitted in communication systems or stored in storage systems can be corrupted by noise, and LDPC codes may be used to correct errors caused by this corruption. LDPC codes may achieve this by storing/transmitting parity check bits in addition to the original data bits. An objective of decoding LDPC codes is to reconstruct the original data from the corrupted noisy data.
The 3rd Generation Partnership Project, 3GPP, has finalized the design of fifth generation, 5G, new radio, NR, LDPC codes for enhanced mobile broadband, eMBB, services. To support a broad range of code lengths and rates, two base graphs, BGs, BG1 and BG2 are considered in the NR eMBB implementation. Both BG1 and BG2 consist of two parts, a core graph representing the high rate codes, as well as an extension graph which includes more parity bits for lower rate codes.
SUMMARY
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
It is an object to provide a decoder for decoding LDPC codes. The object is achieved by the features of the independent claims. Further implementation forms are provided in the dependent claims, the description and the figures. According to a first aspect, a decoder for decoding low-density parity-check codes is configured to: receive L-values to a check node, CN, from neighbouring variable nodes, VNs; select a first subset of L-values from the received L-values comprising s’-1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin; process the first subset of L-values in the CN to produce a first extrinsic L-value; pass the first extrinsic L-value to a neighbouring VN corresponding to Lmin; select a second subset of L-values from the received L-values comprising s received L-values with smallest magnitudes; process the second subset of L-values in the CN to produce a second L-value; and pass the second L-value to the neighbouring VNs excluding the VN corresponding to Lmin. With these configurations, the decoder can, for example, decode LDPC codes with a reduced number of operations.
In an implementation form of the first aspect, the decoder is further configured to: initialise L-values in the VNs according to received channel outputs; and transmit the initialised L-values from the VNs to the CN. With these configurations, the decoder can, for example, use the channel outputs as a starting point for the decoding iteration.
In a further implementation form of the first aspect, the decoder is further configured to: calculate outgoing L-values from each VN to the CN by summing all L-values received to the VN excluding an L-value received from the CN. With these configurations, the decoder can, for example, efficiently calculate the outgoing L-values in the VNs from the L-value received from the CNs.
In a further implementation form of the first aspect, s’-1 and/or s are preconfigured integer values. With these configurations, the decoder can, for example, select the first and second subset of L-values using the preconfigured integer values.
In a further implementation form of the first aspect, an outgoing L-value of a VN is set to zero, if a sign of the outgoing L-value changes between two consecutive iterations. With these configurations, the decoder can, for example, perform self-correction so that unreliable L-values are removed from the iteration. This may improve performance of the decoder.
In a further implementation form of the first aspect, s’-1 and/or s are configured according to a threshold, Lth, so that a magnitude of each L-value in the first subset and in the second subset is less or equal to Lth. With these configurations, the decoder can, for example, select the first and second subset so that the sizes of the subsets scale according to the L-value magnitudes.
In a further implementation form of the first aspect, Lth is determined by Lmin and a factor b, wherein b indicates a proportion between Lth and Lmin. With these configurations, the decoder can, for example, efficiently determine the value of Lth.
In a further implementation form of the first aspect, With these
Figure imgf000005_0001
configurations, the decoder can, for example, efficiently compute the value of Lth.
In a further implementation form of the first aspect, s’-1 and/or s are configured according to the number of L-values received to the CN, dc, and a factor l, wherein l indicates a proportion between dcand s or between dcand s’-1. With these configurations, the decoder can, for example, select the first and second subset so that the sizes of the subsets scale according to the number of L-values received to the CN.
In a further implementation form of the first aspect, s=ceil(kdc). With these configurations, the decoder can, for example, efficiently compute the value of s.
In a further implementation form of the first aspect, the decoder is further configured to: rescale the L-values received to the CN by multiplying each received L-value by a factor. With these configurations, the decoder can, for example, improve performance in the case of LLR mismatch.
According to a second aspect, a method comprises: receiving L-values to a check node, CN, from neighbouring variable nodes, VNs; selecting a first subset of L-values from the received L-values comprising s’-1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin; processing the first subset of L-values in the CN to produce a first extrinsic L-value; passing the first extrinsic L-value to a neighbouring VN corresponding to Lmin; selecting a second subset of L-values from the received L-values comprising s received L-values with smallest magnitudes; processing the second subset of L- values in the CN to produce a second L-value; and passing the second L-value to the neighbouring VNs excluding the VN corresponding to Lmin.
In an implementation form of the second aspect, the method further comprises initialising L-values in the VNs according to received channel outputs; and transmitting the initialised L-values from the VNs to the CN. In a further implementation form of the second aspect, the method further comprises calculating outgoing L-values from each VN to the CN by summing all L-values received to the VN excluding an L-value received from the CN.
In a further implementation form of the second aspect, s’-1 and/or s are preconfigured integer values.
In a further implementation form of the second aspect, the method further comprises setting an outgoing L-value of a VN to zero, if a sign of the outgoing L- value changes between two consecutive iterations.
In a further implementation form of the second aspect, the method further comprises configuring s’-1 and/or s according to a threshold, Lth, so that a magnitude of each L-value in the first subset and in the second subset is less or equal to Lth.
In a further implementation form of the second aspect, the method further comprises determining Lth by Lmin and a factor b, wherein b indicates a proportion between Lth and Lmin.
In a further implementation form of the second aspect,
Figure imgf000006_0001
In a further implementation form of the second aspect, the method further comprises configuring s’-1 and/or s according to the number of L-values received to the CN, dc, and a factor l, wherein l indicates a proportion between dcand s or between dcand s’-1.
In a further implementation form of the second aspect, s=eeil(ldc).
In a further implementation form of the second aspect, the method further comprises rescaling the L-values received to the CN by multiplying each received L-value by a factor.
According to a third aspect, a computer program is provided, comprising program code configured to perform a method according to the second aspect when the computer program is executed on a computer.
Many of the attendant features will be more readily appreciated as they become better understood by reference to the following detailed description considered in connection with the accompanying drawings. DESCRIPTION OF THE DRAWINGS
The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
FIG. 1 illustrates a schematic representation of a decoder according to an embodiment;
FIG. 2 illustrates a schematic representation of a Tanner graph according to an embodiment;
FIG. 3 illustrates a schematic representation of Tanner graphs for check node and a variable node according to an embodiment;
FIG. 4 illustrates a schematic representation of a Tanner graph of critical value processing according to an embodiment;
FIG. 5 illustrates a schematic representation of a Tanner graph of non- critical value processing according to an embodiment;
FIG. 6 illustrates a schematic representation of simulation results according to an embodiment;
FIG. 7 illustrates a schematic representation of simulation results according to another embodiment;
FIG. 8 illustrates a schematic representation of simulation results according to another embodiment;
FIG. 9 illustrates a schematic representation of simulation results according to another embodiment;
FIG. 10 illustrates a schematic representation of a table according to an embodiment; and
FIG. 11 illustrates a flow diagram of a method according to an embodiment.
Fike references are used to designate like parts in the accompanying drawings.
DETAIFED DESCRIPTION
The detailed description provided below in connection with the appended drawings is intended as a description of the embodiments and is not intended to represent the only forms in which the embodiment may be constructed or utilized. However, the same or equivalent functions and structures may be accomplished by different embodiments. FIG. 1 illustrates a schematic representation of a decoder 100 according to an embodiment. The decoder 100 may comprise a processor 101 and a memory 102. The decoder 100 may be a device or it may be part of a device. For example, the decoder 100 may be a mobile phone, or the decoder 100 may refer to a part of the mobile phone that implements decoding. The decoder 100 may be implemented, for example, in software or in hardware.
According to an embodiment, the decoder 100 is configured to receive L- values to a check node, CN, from neighbouring variable nodes, VNs. As a person skilled in the art can appreciate, VNs and CNs may be implemented in software and may not respond to any physical components in the decoder 100. The decoder 100 may be further configured to select a first subset of L-values from the received L- values comprising s’-1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin. The decoder may then process the first subset of L-values in the CN to produce a first extrinsic L-value. This L- value may be referred to as a critical L-value. The decoder 100 may then pass the first extrinsic L-value to a neighbouring VN corresponding to Lmin. The decoder 100 may be further configured to select a second subset of L-values from the received L-values comprising s received L-values with smallest magnitudes. The decoder 100 may be further configured to process the second subset of L-values in the CN to produce a second L-value. This L-value may be referred to as non-critical L-value. The decoder 100 may be further configured to pass the second L-value to the neighbouring VNs excluding the VN corresponding to Lmin. Each VN may calculate a new L-value, and these L-values may be passed back to the CNs. This process may be iterated until a stopping criterion is met.
The decoder 100 may be part of, for example, a client device or a network access device in a wireless communication system. The decoder 100 may be configured to perform the functionalities and operations relating to it as described in the embodiments. For example, a client device may transmit a message to a network access device using wireless communication and code the message using LDPC coding. The network access device may use the decoder 100 to decode such message.
A client device may be any of a User Equipment (UE) in Long Term Evolution (LTE) or 5G new radio (NR), mobile station (MS), wireless terminal, or mobile terminal which is enabled to communicate wirelessly in a wireless communication system, sometimes also referred to as a cellular radio system. The client device may further be referred to as a mobile telephone, a cellular telephone, a computer tablet or a laptop with wireless capability. The client device in the present context may be, for example, a portable, pocket-storable, hand-held, computer-comprised, or vehicle-mounted mobile device, enabled to communicate voice or data, via a radio access network, with another entity, such as another receiver or a server. The client device 100 can be a Station (STA) which is any device that contains an IEEE 802.11 -conformant Media Access Control (MAC) and Physical Layer (PHY) interface to the Wireless Medium (WM).
A network access device may be a transmission or reception point, TRP, or a NR 5G base station, gNB. The network access device may be a base station, a (radio) network node or an access node or an access point or a base station, e.g., a Radio Base Station (RBS), which in some networks may be referred to as a transmitter, “eNB”, “eNodeB”, “gNB”, “gNodeB”, “NodeB”, or “B node”, depending on the technology and terminology used. The radio network nodes may be of different classes such as, e.g., macro eNodeB, home eNodeB or pico base station, based on transmission power and thereby also cell size. The radio network node can be a Station (STA) which is any device that contains an IEEE 802.11- conformant Media Access Control (MAC) and Physical Layer (PHY) interface to the Wireless Medium (WM).
An LDPC code can be described by a sparse parity-check matrix H. The codewords v of the LDPC code is a set of vectors, the null space of which is H, i.e., vHT = 0, where HT is the transpose of H. LDPC codes can also be represented by so called Tanner graphs. A Tanner graph is a bipartite graph which consists of variable nodes, VNs, and check nodes, CNs. VNs may also be referred to as digit nodes or bit nodes, and CNs may also be referred to as subcode nodes or parity nodes. An example of a parity-check matrix may be
Figure imgf000009_0001
A Tanner graph corresponding to the matrix H above is presented in FIG. 2 according to an embodiment. As can be seen from FIG. 2, columns of H corresponds to connections of each VN 201, and rows of H correspond to connections of each CN 202. For example, in the first column of H, three first entries are ones. Thus, the first VN 201, counting from the left, is connected to the three first CNs 202. Generally, if the entry in the ith row and yth column of H is one, then in the corresponding Tanner graph, the ith CN 202 and yth VN 201 are connected. When a VN 201 and a CN 202 are connected in a Tanner graph, they may be referred to as neighbouring nodes. For example, in FIG. 2, the first VN 201 is a neighbouring VN to the first, second, and third CNs 202. The number of VNs 201 in the Tanner graph is the length N of the code, and the number of CNs M is number of parity bits of the code. If H has full rank, then the rank of the code R can be defined as R = (N— M)/N. For example, in NR eMBB, BG1 may be used for codes of lengths N = 512 to 8448 and of rates R = 8/9 to 1/3, while BG2 may be used for codes of lengths N = 40 to 2560 and of rates R = 2/3 to 1/5.
An LDPC codeword at the receiver can be decoded into a reconstructed copy of transmitted codeword v. For a binary case, the codeword bits vn, for n = 1,2, ... N, can take one of two values of 0 or 1 with some probabilities P(vn = 1) and P(vn = 0) . It may be convenient to define a so-called log-likelihood ratio, LLR, or L-value. L-value may be defined as
Figure imgf000010_0001
Here, log refers to the natural logarithm. As can be seen from the definition of the L-value, a large L-value may imply that the corresponding bit vn is likely to be a zero, while a low value may imply that the corresponding bit is likely to be a one. Since log 1 = 0, low L-value magnitude, i.e. a L-value close to zero, may imply that there is a large uncertainty in the value of the bit. A set of L-values or a single L-value may be referred to as a message. In addition, a channel can also output codeword L-values. This may be denoted by based on the received vector r.
Figure imgf000010_0002
In LDPC decoding, such as in the sum product, SP, decoding of LDPC codes, the CNs 202 and VNs 201 work in an iterative way, which can be illustrated in the Tanner graph representation of FIG. 3. A so-called flooding schedule may be used. All VNs 201 process their input L-value and pass the extrinsic L-values to their neighbouring CNs 202. The CNs 202 then process their input L-value and output extrinsic L-values to their neighbouring VNs 201. The term“extrinsic” may indicate that the L-value is transmitted to another node. The procedure may repeat until a pre-set maximum number of iterations is reached or some stopping criterion is satisfied. The decoder can then estimate the L-value for each bit vn, from which the more probable bit value may be deduced.
A so-called box-plus operation can be used by the VNs 201 and the CNs
Figure imgf000011_0002
202 to process the L-values. For two input L-values L1 and L2 , the box-plus operation can be defined as
Figure imgf000011_0001
In wireless communication, due to possible noise estimation mismatch in the detector, automatic gain control, AGC, and other front-end components, the L- values fed into an LDPC decoder can be modelled as a scaled version of the true received L-values. This may be referred to LLR mismatch and may cause performance degradation in LDPC decoding.
The computational complexity of LDPC decoding may be reduced using a so-called approximate min*, a-min*, algorithm. Unlike the SP decoding where the CNs compute a unique L-value for every neighbouring VN 201, the a-min* algorithm computes only two magnitudes of L-values per CN 202. The Self- corrected Min-Sum (SCMS) algorithm performs the same CN processing as that of the MS algorithm and differs only in the VN processing.
CN processing for the ga-min* decoder is presented below according to an embodiment. This processing may be implemented by the decoder 100. This CN processing may be combined with some other processing steps performed, for example, in the VNs 201. For example, the CNs 202 may perform processing according to the steps presented below and then pass L-values produced in the processing to VNs 201. The VNs 201 may perform other processing and pass new L-values to the CNs. These steps may be iterated, for example, until a stopping criterion is met.
It should be appreciated that the number of incoming L-values, s'— 1 and s, to the CN for computing critical and non-critical L-values, respectively, is not equal to 1 and dc. According to an embodiment, s'— 1 and/or s are preconfigured integer values.
According to an embodiment, among all neighbouring VNs of a CN m, VN nt indicates the VN whose L-value magnitude is the least out of L-values passed to CN m. One of the L-values computed at CN processor is specially send to VN n1 and the other L-value is sent to the rest of neighbouring VNs of CN m. The L- values corresponding to these two magnitudes may be referred to as critical and non-critical L-values, respectively.
According to an embodiment, the decoder 100 may be configured to initialise L-values in the VNs according to received channel outputs and transmit the initialised L-values from the VNs to the CN. L-values of each VN may be initialised according to the channel outputs
Figure imgf000012_0009
, where n = 0,1, , N— 1. For simplicity, Lch (vn \ r) may be denoted by Ln . The outgoing L-values from a VN to its neighbouring CNs may be set as the channel L-values This may
Figure imgf000012_0010
be used as a starting point for the iterative LDPC decoding. The VNs may pass the L-values received from the channel to the CNs, and the CNs may process the L- values.
According to an embodiment, the ga-min* algorithm may be described using the following steps:
1. At a CN m with dc VN neighbours, sort the magnitude of incoming in an ascending order. Denote the VN with i th smallest
Figure imgf000012_0008
magnitude In the following, Ln. denotes L-values
Figure imgf000012_0007
from VN nL to CN m instead of
Figure imgf000012_0001
for simplicity. Let
Figure imgf000012_0004
be the resulting two subsets which contain the sorted VN L-values with
Figure imgf000012_0011
where refer to the
Figure imgf000012_0005
Figure imgf000012_0006
number of elements in the subsets Sm and Sm' , respectively. Sm' may be referred to as a first subset, and Sm may be referred to as a second subset.
2. The magnitude of critical CN L-value to VN % may be computed by applying the box-plus operator to VNs in S’m with an extrinsic sign that is the product of signs
Figure imgf000012_0003
Figure imgf000012_0002
where N(m ) denotes the neighbours of CN m. These may also be referred to as VNs in the neighbourhood of CN m. Herein, notation such as N(m )— n1 denotes the set N ( m ) excluding the element n1. Alternatively, this could be notated as
Figure imgf000013_0007
3. For the other VNs in the neighbourhood of CN m, the magnitude of non-critical L-values to may be computed by applying the box-
Figure imgf000013_0008
plus operator to L-values in Sm with an extrinsic sign that is the product of signs of
Figure imgf000013_0002
According to an embodiment, the decoder 100 may be configured to calculate outgoing L-values from each VN to the CN by summing all L-values received to the VN excluding an L-value received from the CN. For example, the extrinsic L-values from VN n to CN Mi are the sum of all L-values that VN n receives from neighboring CNs m1, m2, ..., excluding
Figure imgf000013_0001
plus the L-values from channel Lch, as described by the following equation:
Figure imgf000013_0003
where N(ri) denotes CNs in the neighbourhood of VN n.
For each VN, the total LLR can be computed using the following equation:
Figure imgf000013_0004
Thus, the total LLR may be computed by summing the L-value received from the channel Ln and L-values received from neighbouring CNs N(ri).
The aforementioned steps may be iterated multiple times. In each iteration,
VNs may pass L-values to CNs and vice versa. The iteration may be stopped, when a stopping criterion is met. An estimate of the bit value vn may be deduced from
Figure imgf000013_0005
The stopping criterion may be, for example or the number of iterations
Figure imgf000013_0006
equals a preconfigured maximum limit.
FIG. 4 illustrates a schematic representation of a Tanner graph of the ga- min* algorithm for a critical L-value according to an embodiment. FIG. 4 illustrates the procedure only for one CN 202 with five neighbouring VNs 201, V1, V2 ... V5. In practice, there may be significantly more CNs 202 in an LDPC code, and this procedure may be used for each such CN 202.
Before the L-values are processed by the CN 202, the magnitudes of L- values may enter a sorting block 203 where the L-values are sorted according their magnitudes. The sorting block 203 may be implemented in software. The sorting may be needed so that L-values with smallest magnitudes can be used for the processing in the CN 202. Alternatively, the L-values with the least magnitude may be found using some procedure other than sorting. A magnitude of an L-value may also be referred to as an absolute value or a modulus.
After the sorting block 203, the VNs 201 may be denoted so that Vn denotes the VN 201’ with the smallest L-value magnitude, and Vn2 201 denotes the VN 201 with the second smallest L-value magnitude, and so on. In the embodiment presented in FIG. 4, s' = 4. The subset S' 401 comprises L-values corresponding to VNs Vn2, Vn3, and Vn4. Therefore, only L-values from Vn,2, Vn3, F„4 need to be passed into the CN 202, and the CN 202 may calculate an extrinsic L-value based on these three L-values and pass the extrinsic L-value 402 to the VN corresponding to the smallest L-value magnitude Vni 201
FIG. 5 illustrates a schematic representation of a Tanner graph of the ga min* algorithm for a non-critical L-value according to an embodiment. Similarly to the embodiment of FIG. 4, the magnitudes of L-values may enter a sorting block 203 where the L-values are sorted according their magnitudes so that s smallest L- value magnitudes can be found. Other procedures may also be used to find the smallest magnitudes. In this embodiment, s = 3. Thus, the subset S 501 comprises L-values corresponding to VNs Vni, Vn2, and Vnr Therefore, only L-values from Vni, Vn2, Vn3 need to be passed into the CN 202, and the CN may calculate an L- value 502 based on these three L-values. The CN 202 may then pass the L-value 502 to VNs 201 other than the VN 201’ corresponding to the smallest L-value magnitude, i.e. Vn2, Vn3, Vn4, and Vn5.
It should be appreciated that for the embodiments of FIG. 4 and FIG. 5, the L-values need to be sorted only once, and this sorted list may be used for the processing presented in FIG. 4 and FIG. 5. A maximum of s' or s magnitudes need to be sorted, depending on which parameter is greater. For example, in the embodiments presented above, if the L-values are sorted to find s' = 4 smallest L- value magnitudes, the same sorted list may be used to find the s = 3 smallest L- vable magnitudes.
With s' = 4, L-values only from need to be processed by the
Figure imgf000015_0009
CN 202 to calculate the critical L-value 402, and the CN 202 can send the critical L-value 402 to Vn . Similarly, with s = 3, L-values only from need to
Figure imgf000015_0007
be processed by the CN 202 to calculate the non-critical L-value 502, and the CN 202 can send the non-critical L-value 502 to VNs 201 other than This way, the
Figure imgf000015_0008
two magnitudes of L-values in CNs 202 are computed and sent to all neighbouring with a reduced number of L-values processed.
Figure imgf000015_0006
The ga-min* procedure has been described above with two parameters s and s'. Since s and s' represent the number of input L-values needed to be sorted, greater s or s' may make the sorting hardware more complex, meanwhile the resulting output may be more accurate. The value of s and s' should be chosen to have a good performance-complexity trade-off. Several embodiments for choosing the value of these two parameters and variants of the ga-min* procedure are given below. As a person skilled in the art can appreciate, configuring s' also configures s'— 1. Thus, these two terms may be used interchangeably.
According to an embodiment, s = 2 or 3 for generating non-critical L- values and s' = 3 or 4 for critical L-values, where s = 2 or 3 and s' = 3 or 4 are chosen to achieve a good complexity and performance trade -off.
According to an embodiment, s'— 1 and/or s are configured according to a threshold, Lth, so that a magnitude of each L-value in the first subset and in the second subset is less or equal to Lth. For example, s and/or s' can be dynamically determined by a threshold Lth such that
Figure imgf000015_0001
According to another embodiment, Lth is determined by Lmin in and a factor b, wherein b indicates a proportion between Lth and Lmin. For example, Lth can be determined using the factor b so that or Like
Figure imgf000015_0005
Figure imgf000015_0010
above, denotes L-values with the smallest magnitude. For example, if
Figure imgf000015_0004
The number of incoming L-
Figure imgf000015_0003
values processed by CN m , s or s’, comprises all i e {1, 2, ... , dc} such that
Figure imgf000015_0002
According to an embodiment, s’-1 and/or s are configured according to the number of L-values received to the CN, dc, and a factor l, wherein l indicates a proportion between dc and s or between dc and s’-1. For example, s or s' can be based on the factor l and the degree dc of the CN m. Degree refers to the number of neighbours connected to the CN m. For example, s = ceil(ldc), where ceil is the ceiling function. Thus, a predetermined proportion of all L-values dc transmitted to the CN may be used for the processing in the CN. For example, if dc = 15 and l = 0.2, s =ceil(15 x 0.2) = 3.
According to an embodiment, the decoder 100 may be configured to rescale the L-values received to the CN 202 by multiplying each received L-value by a factor. For example, in the absence of LLR mismatch, the input L-values may be rescaled by multiplying them by a factor m. For example, m = 2 may be used for the ga-min* with s = 2 and s' = 3 to possibly achieve better performance.
According to an embodiment, an outgoing L-value of a VN 201 is set to zero, if a sign of the outgoing L-value changes between two consecutive iterations. In some embodiments, VNs 201 may utilise so-called self-corrected, SC, processing. The SC processing may be combined with any embodiment described herein. In the SC processing, VN n may first compute a temporary L-value
Figure imgf000016_0002
to CN m. The temporary L-value may get erased, i.e if there is a sign
Figure imgf000016_0001
change of the L-values between the current iteration i and previous iteration i— 1. Otherwise, the extrinsic L-value of the VN 201 is set to be equal to the temporary L-value l(L) n m. This way, unreliable L-values can be detected by sign fluctuation. By erasing these unreliable L-values, improved decoding performance may be achieved, and decoding may be robust even in noisy conditions.
FIG. 6 and FIG. 7 illustrate schematic representations of simulation results according to an embodiment. In the simulation presented in FIG. 6, information length K = 4224 and code rate R = 1/3, while in the simulation of FIG. 7 , K = 960 and R = 1/5. In these simulations, additive white Gaussian noise, AWGN, channel with binary phase-shift keying, BPSK, modulated transmission was used. The block error rate, BLER, was simulated down to approximately 10-2 , since this may be the primary target rate in NR eMBB. An LDPC code in each BG was selected with the lowest rate. For simplicity, in the simulation, s = s'— 1 in the (sc)ga-min*, and s = 2 or 3. scga-min* refers to the ga-min* algorithm with SC processing. Other simulated algorithms were, sum product, SP, approximate min*, a-min*, self-correcting a-min*, sca-min*, self-correcting minimum sum, SCMS, and normalised minimum sum, NMS.
Given information length K, the lowest rate, i.e. 1/3 in BG1 and 1/5 in BG2, seems to lead biggest performance gaps between SP algorithm and other iterative decoding algorithms. With s = 2, the ga-min*, illustrated by curves 601 and 701, has 0.3dB and 0.2dB loss to the SP algorithm in these two codes, respectively. With s = 3, the gap reduces to O.ldB. The performance gap is less than 0.05dB in the first code and almost overlapped with the a-min* in the second. Meaning that with s = 3 , the CN processing of both critical and non-critical L-values are good approximations of those in the a-min*.
The performance of the sca-min* and the a-min* is fairly close. Under this condition, SC technique seems to have no prominent effect in improving the performance. Similar condition can account for the close performance between the scga-min*, illustrated by curves 604 and 704, and the ga-min*, illustrated by curves 602 and 702, with s = 3, where the CN L-value is close enough to that of the a- min*, as mentioned above.
However, with s = 2, scga-min*, illustrated by curves 603 and 703, seems to outperform ga-min* by 0.2dB and also slightly better than the performance of a- min*. This may indicate that the SC technique can achieve a performance boost when the critical L-value in the CN of the ga-min* is over-estimated. An even bigger performance gain of 0.4dB, can be observed between the SCMS and the NMS. In this case, the SC technique seems to also be powerful in improving the performance.
FIG. 8 and FIG. 9 illustrate schematic representations of simulation results according to an embodiment. In both simulations, K = 4224 and R = 1/3, and L- values fed into the decoder were scaled by a constant r?. If h > 1, this may be referred to as LLR over estimation. If h < 1, this may be referred to as LLR under estimation. FIG. 8 illustrates simulation results when h = 1/2 , and FIG. 9 illustrates simulation results when h = 2.
The ga-min*, illustrated by curves 801 and 901, and scga-min*, illustrated by curves 803 and 903, seem to show superiority in performance compared to other iterative algorithms for both h values. The SP and a-min* decoder seem to be very sensitive to both SNR underestimation (h = 1/2) in FIG. 8 and over-estimation (h = 2) in FIG. 9. There can be at least ldB loss to the performance compared to the absence of LLR mismatch as presented in FIG. 6. The SCMS and scga-min* with s = 2 show signs of robustness in both LLR under-estimation and over-estimation scenarios. Specifically, the performance of the SCMS is similar in both cases, whereas only 0.2dB and O.ldB degradation for LLR underestimate and overestimate, respectively, can be observed in the scga-min* with s = 2. For LLR under-estimation, the ga-min* even outperforms the one in the absence of LLR mismatch by O.ldB, but it degrades drastically for LLR over-estimation. When SC is applied to the ga-min* with s = 2, the robustness of the performance can be enhanced against LLR mismatch.
FIG. 10 illustrates a schematic representation of a table 1000 comparing a number of box-plus operations between ga-min* and a-min* according to an embodiment. In ga-min*, the box-plus operator may be used only s times per CN, compared to dc— 1 times in a-min*. The saving in the box-plus operations may be at the cost of sorting incoming L-values of size s + 1, which may be relatively inexpensive to implement in hardware for the cases of s = 2 or s = 3. Table of FIG. 10 illustrates a complexity comparison with respect to box-plus operation savings for various code rates of NR LDPC codes. The highest rate has the highest average row weight dc due to the high CN degree in the core graph, resulting in greatest savings, namely 86% for s = 2 and 80% for s = 3 in BG1, and 69% for s = 2 and 53% for s = 3 in BG2. For lower rates, more CNs are included in the extension graph, which lowers dc, and the complexity saving is 66% for s = 2 and 49% for s = 3 in BG1, and 46% for s = 2 and 19% for s = 3 in BG2.
FIG. 11 illustrates a flow diagram of a method according to an embodiment.
At 1100 L-values are received to a check node, CN, from neighbouring variable nodes, VNs.
At 1102 a first subset of L-values is selected from the received L-values comprising .s’- 1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin.
At 1104 processing the first subset of L-values is processed in the CN to produce a first extrinsic L-value. At 1106 the first extrinsic L-value is passed to a neighbouring VN corresponding to Lmin.
At 1108 a second subset of L-values is selected from the received L-values comprising s received L-values with smallest magnitudes.
At 1110 the second subset of L-values is processed in the CN to produce a second L-value.
At 1112 the second L-value is passed to the neighbouring VNs excluding the VN corresponding to Lmin.
The steps 1 100-1112 may be implemented by the decoder 100 discussed in relation to FIG. 1.
The functionality described herein can be performed, at least in part, by one or more computer program product components such as software components. According to an embodiment, the decoder 100 comprises the processor 101 configured by the program code when executed to execute the embodiments of the operations and functionality described. Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), Graphics Processing Units (GPUs).
Any range or device value given herein may be extended or altered without losing the effect sought. Also any embodiment may be combined with another embodiment unless explicitly disallowed.
Although the subject matter has been described in language specific to structural features and/or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as embodiments of implementing the claims and other equivalent features and acts are intended to be within the scope of the claims.
It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages. It will further be understood that reference to 'an' item may refer to one or more of those items. The term‘and/or’ may be used to indicate that one or more of the cases it connects may occur. Both, or more, connected cases may occur, or only either one of the connected cases may occur.
The operations of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the embodiments described above may be combined with aspects of any of the other embodiments described to form further embodiments without losing the effect sought.
The term 'comprising' is used herein to mean including the method, blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.
It will be understood that the above description is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, embodiments and data provide a complete description of the structure and use of exemplary embodiments. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this specification.

Claims

1. A decoder (100) for decoding low-density parity-check codes, configured to:
receive L-values to a check node (202), CN, from neighbouring variable nodes (201), VNs;
select a first subset (401) of L-values from the received L-values comprisings ' - 1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin;
process the first subset of L-values in the CN to produce a first extrinsic L- value (402);
pass the first extrinsic L-value to a neighbouring VN (201’) corresponding to Lmin;
select a second subset (501) of L-values from the received L-values comprising s received L-values with smallest magnitudes;
process the second subset of L-values in the CN to produce a second L-value (502); and
pass the second L-value to the neighbouring VNs excluding the VN corresponding to Lmin.
2. The decoder (100) of claim 1, further configured to:
initialise L-values in the VNs according to received channel outputs; and transmit the initialised L-values from the VNs to the CN.
3. The decoder (100) of any preceding claim, further configured to:
calculate outgoing L-values from each VN to the CN by summing all L- values received to the VN excluding an L-value received from the CN.
4. The decoder (100) of any preceding claim, wherein s’ - 1 and/or s are preconfigured integer values.
5. The decoder (100) of any preceding claim, wherein an outgoing L-value of a VN is set to zero, if a sign of the outgoing L-value changes between two consecutive iterations.
6. The decoder (100) of any preceding claim, wherein s’ - 1 and/or s are configured according to a threshold, Lth, so that a magnitude of each L-value in the first subset and in the second subset is less or equal to Lth.
7. The decoder (100) of claim 6, wherein Lth is determined by Lmin and a factor b, wherein b indicates a proportion between Lth and Lmin.
8. The decoder (100) of claim 7, wherein
Figure imgf000022_0001
9. The decoder (100) of any of claims 1 - 5, wherein s’-1 and/or s are configured according to the number of L-values received to the CN, dc, and a factor l, wherein l indicates a proportion between dcand s or between dc and s’-1.
10. The decoder (100) of claim 9, wherein
Figure imgf000022_0002
11. The decoder (100) of any preceding claim, further configured to:
rescale the L-values received to the CN by multiplying each received L- value by a factor.
12. A method, comprising:
receiving (1100) L-values to a check node, CN, from neighbouring variable nodes, VNs;
selecting (1102) a first subset of L-values from the received L-values comprising .s’- 1 received L-values with smallest magnitudes excluding a received L-value with a smallest magnitude, Lmin;
processing (1104) the first subset of L-values in the CN to produce a first extrinsic L-value;
passing (1106) the first extrinsic L-value to a neighbouring VN corresponding to Lmin;
selecting (1108) a second subset of L-values from the received L-values comprising s received L-values with smallest magnitudes;
processing (1100) the second subset of L-values in the CN to produce a second L-value; and passing (1102) the second L-value to the neighbouring VNs excluding the VN corresponding to Lmin.
13. A computer program comprising program code configured to perform a method according to claim 12 when the computer program is executed on a computer.
PCT/EP2018/074667 2018-09-12 2018-09-12 Simplified check node processing for ldpc decoding WO2020052754A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2018/074667 WO2020052754A1 (en) 2018-09-12 2018-09-12 Simplified check node processing for ldpc decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2018/074667 WO2020052754A1 (en) 2018-09-12 2018-09-12 Simplified check node processing for ldpc decoding

Publications (1)

Publication Number Publication Date
WO2020052754A1 true WO2020052754A1 (en) 2020-03-19

Family

ID=63557498

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/074667 WO2020052754A1 (en) 2018-09-12 2018-09-12 Simplified check node processing for ldpc decoding

Country Status (1)

Country Link
WO (1) WO2020052754A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202000024445A1 (en) 2020-10-16 2022-04-16 Mollificio Bordignon S R L DOUBLE WIRE SPRING WITH IMPROVED POLYGONAL SECTION

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1909395A1 (en) * 2005-07-13 2008-04-09 Mitsubishi Electric Corporation Communication apparatus and decoding method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1909395A1 (en) * 2005-07-13 2008-04-09 Mitsubishi Electric Corporation Communication apparatus and decoding method

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BONCALO OANA ET AL: "Memory efficient implementation of self-corrected min-sum LDPC decoder", PROC., 21ST IEEE INTERNATIONAL CONFERENCE ON ELECTRONICS, CIRCUITS AND SYSTEMS (ICECS), 7 December 2014 (2014-12-07), pages 295 - 298, XP032740240, DOI: 10.1109/ICECS.2014.7049980 *
EMMANUEL BOUTILLON ET AL: "lambda-Min Decoding Algorithm of Regular and Irregular LDPC Codes [lambda]-Min Decoding Algorithm of Regular and Irregular LDPC Codes", PROC., 3ND INTERNATIONAL SYMPOSIUM ON TURBO CODES & RELATED TOPICS, BREST, FRANCE, 1 January 2003 (2003-01-01), pages 68941, XP055580622, Retrieved from the Internet <URL:https://hal.archives-ouvertes.fr/hal-00068941/document> [retrieved on 20190412] *
JONES C ET AL: "Approximate-min* constraint node updating for LDPC code decoding", PROC., IEEE MILITARY COMMUNICATIONS CONFERENCE, MILCOM 2003, BOSTON, MA, vol. 1, 13 October 2003 (2003-10-13) - 16 October 2003 (2003-10-16), pages 157 - 162, XP010698233, ISBN: 978-0-7803-8140-7, DOI: 10.1109/MILCOM.2003.1290095 *
ROVINI MASSIMO ET AL: "High-precision LDPC codes decoding at the lowest complexity", PROC., IEEE EUROPEAN SIGNAL PROCESSING CONFERENCE, 4 September 2006 (2006-09-04), pages 1 - 5, XP032753568, ISSN: 2219-5491, [retrieved on 20150327] *
WEI ZHOU ET AL: "Generalized Two-Magnitude Check Node Updating with Self Correction for 5G LDPC Codes Decoding", PROC., 12TH INTERNATIONAL ITG CONFERENCE ON SYSTEMS, COMMUNICATION AND CODING, SCC 2019, ROSTOCK, GERMANY, 11 February 2019 (2019-02-11), pages 274 - 279, XP055580738, DOI: 10.30420/454862047 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202000024445A1 (en) 2020-10-16 2022-04-16 Mollificio Bordignon S R L DOUBLE WIRE SPRING WITH IMPROVED POLYGONAL SECTION

Similar Documents

Publication Publication Date Title
US20170324514A1 (en) Polar Code Generation Method and Device
US8010869B2 (en) Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords
US7757150B2 (en) Structured puncturing of irregular low-density parity-check (LDPC) codes
KR100804793B1 (en) Method for updating Check Node in Low Density Parity Check Decoder
US9191156B2 (en) Apparatus and method using matrix network coding
KR101718543B1 (en) Apparatus and method for decoding using improved bit-flipping algorithm for low density parity check code and recording medium for the same
US20090222711A1 (en) Generalized Multi-Threshold Decoder for Low-Density Parity Check Codes
TW202107857A (en) Methods and apparatus for error correction coding with triangular factorization of generator matrix
US11677500B2 (en) Methods and apparatus for encoding and decoding of data using concatenated polarization adjusted convolutional codes
WO2020077596A1 (en) Decoding method and apparatus for ldpc codes
Yuan et al. Construction and decoding algorithms for polar codes based on 2× 2 non-binary kernels
US9614548B1 (en) Systems and methods for hybrid message passing and bit flipping decoding of LDPC codes
US9219501B2 (en) LDPC encoding/decoding method and device using same
CN109831281B (en) Multi-user detection method and device for low-complexity sparse code multiple access system
CN108370253B (en) Hybrid scheduling and latch-based pipeline for low density parity check decoding
CN107181567B (en) Low-complexity MPA algorithm based on threshold
CN103607208A (en) LDPC minimum sum decoding method based on normalization correction factor sequences
US20070011600A1 (en) Decoding method and apparatus
WO2020052754A1 (en) Simplified check node processing for ldpc decoding
WO2020088256A1 (en) Decoding method and device
KR20090012189A (en) Apparatus and method for decoding using performance enhancement algorithm for ldpc codes with scaling based min-sum iterative decoding
KR101630114B1 (en) LDPC Decoding Device and Method Using Min-Sum Algorithm
WO2021073338A1 (en) Decoding method and decoder
KR102045438B1 (en) Method and Apparatus for Decoding of Low-density parity-check
US11894862B2 (en) Method and device for polar code encoding and decoding

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18769180

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18769180

Country of ref document: EP

Kind code of ref document: A1