LAYERED DECODING OF LOW DENSITY PARITY CHECK (LDPC) CODES
20260081621 ยท 2026-03-19
Inventors
Cpc classification
H03M13/114
ELECTRICITY
H04L1/005
ELECTRICITY
International classification
H03M13/37
ELECTRICITY
Abstract
Layered decoding of low-density parity check (LDPC) codes are decoded by selecting one or more of a plurality of check nodes (CNs) based on degree in priority, where the degree in priority for each of the plurality of CNs is based on a number of variable nodes (VNs) connected to the respective CN. Layered decoding for an LDPC code is performed based on applying a sum-product algorithm and an approximated sum-product algorithm. The sum-product algorithm is applied to at least some of the selected one or more CNs among the plurality of CNs. The approximated sum-product algorithm is applied to one or more remaining CNs, other than the selected one or more CNs, among the plurality of CNs.
Claims
1. A method for decoding low-density parity check (LDPC) codes in a communication system, the method comprising: selecting one or more of a plurality of check nodes (CNs) based on degree in priority, wherein a degree in priority for each of the plurality of CNs is based on a number of variable nodes (VNs) connected to the respective CN; and performing layered decoding for a low-density parity-check (LDPC) code based on applying a sum-product algorithm and an approximated sum-product algorithm by: applying the sum-product algorithm to at least some of the selected one or more CNs among the plurality of CNs; and applying the approximated sum-product algorithm to one or more remaining CNs, other than the selected one or more CNs, among the plurality of CNs.
2. The method of claim 1, wherein the approximated sum-product algorithm includes a min-sum algorithm.
3. The method of claim 1, wherein selecting the one or more of the plurality of CNs based on degree in priority comprises: selecting CNs among the plurality of CNs that have with low degrees in priority, wherein the low degree in priority is based on being less than a specified priority threshold.
4. The method of claim 3, wherein the specified priority threshold is a fixed number of edges involved in applying the sum-product algorithm.
5. The method of claim 1, wherein selecting the one or more of the plurality of CNs based on degree in priority comprises: excluding shortened VNs before determining a degree in priority for each of the plurality of CNs.
6. The method of claim 5, wherein selecting the one or more of a plurality of check nodes (CNs) based on degree in priority comprises: selecting, from among the plurality of CNs, at least one CN having a largest number of punctured VNs connected to the respective CN.
7. The method of claim 1, wherein selecting the one or more of a plurality of check nodes (CNs) based on degree in priority comprises: selecting, from among the plurality of CNs, at least one CN having a largest number of punctured VNs connected to the respective CN.
8. An apparatus for decoding low-density parity check (LDPC) codes in a communication system, the apparatus comprising: a transceiver configured to receive a signal having an associated LDPC code; and at least one processor coupled to the transceiver and configured to decode the LDPC code by: selecting one or more of a plurality of check nodes (CNs) based on degree in priority, wherein a degree in priority for each of the plurality of CNs is based on a number of variable nodes (VNs) connected to the respective CN; and performing layered decoding for the LDPC code based on applying a sum-product algorithm and an approximated sum-product algorithm by: applying the sum-product algorithm to at least some of the selected one or more CNs among the plurality of CNs; and applying the approximated sum-product algorithm to one or more remaining CNs, other than the selected one or more CNs, among the plurality of CNs.
9. The apparatus of claim 8, wherein the approximated sum-product algorithm includes a min-sum algorithm.
10. The apparatus of claim 8, wherein the processor is configured to select the one or more of the plurality of CNs based on degree in priority by: selecting CNs among the plurality of CNs that have with low degrees in priority, wherein the low degree in priority is based on being less than a specified priority threshold.
11. The apparatus of claim 10, wherein the specified priority threshold is a fixed number of edges involved in applying the sum-product algorithm.
12. The apparatus of claim 8, wherein the processor is configured to select the one or more of the plurality of CNs based on degree in priority by: excluding shortened VNs before determining a degree in priority for each of the plurality of CNs.
13. The apparatus of claim 12, wherein the processor is configured to select the one or more of the plurality of CNs based on degree in priority by: selecting, from among the plurality of CNs, at least one CN having a largest number of punctured VNs connected to the respective CN.
14. The apparatus of claim 8, wherein the processor is configured to select the one or more of the plurality of CNs based on degree in priority by: selecting, from among the plurality of CNs, at least one CN having a largest number of punctured VNs connected to the respective CN.
15. A non-transitory machine readable medium comprising instructions that, when executed by at least one processor of an electronic device, cause the electronic device to decode low-density parity check (LDPC) codes in a communication system by: selecting one or more of a plurality of check nodes (CNs) based on degree in priority, wherein a degree in priority for each of the plurality of CNs is based on a number of variable nodes (VNs) connected to the respective CN; and performing layered decoding for the LDPC code based on applying a sum-product algorithm and an approximated sum-product algorithm by: applying the sum-product algorithm to at least some of the selected one or more CNs among the plurality of CNs; and applying the approximated sum-product algorithm to one or more remaining CNs, other than the selected one or more CNs, among the plurality of CNs.
16. The non-transitory machine readable medium of claim 15, wherein the approximated sum-product algorithm includes a min-sum algorithm.
17. The non-transitory machine readable medium of claim 15, wherein the instructions, when executed by at least one processor of an electronic device, cause the electronic device to select the one or more of the plurality of CNs based on degree in priority by: selecting CNs among the plurality of CNs that have with low degrees in priority, wherein the low degree in priority is based on being less than a specified priority threshold.
18. The non-transitory machine readable medium of claim 17, wherein the specified priority threshold is a fixed number of edges involved in applying the sum-product algorithm.
19. The non-transitory machine readable medium of claim 15, wherein the instructions, when executed by the at least one processor of the electronic device, cause the electronic device to select the one or more of the plurality of CNs based on degree in priority by: excluding shortened VNs before determining a degree in priority for each of the plurality of CNs.
20. The non-transitory machine readable medium of claim 15, wherein the instructions, when executed by the at least one processor of the electronic device, cause the electronic device to select the one or more of the plurality of CNs based on degree in priority by: selecting, from among the plurality of CNs, at least one CN having a largest number of punctured VNs connected to the respective CN.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals represent like parts:
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
DETAILED DESCRIPTION
[0028]
[0029] Low-density parity-check (LDPC) codes have been widely applied to wireless communications because LDPC codes are able to approach channel capacity asymptotically using belief propagation (BP) decoding. A LDPC code of dimension K and code length N are defined by the (NK) N parity check matrix (PCM) H, where each row and each column correspond to a check equation and a codeword bit, respectively. Denote h.sub.j,i {0,1} the element in j-th row and i-th column of PCM, where j{0,1, . . . , NK1} and i{0,1, . . . , N1}.
[0030] A LDPC code of dimension K and code length N are defined by the parity check matrix (PCM) H.sub.(NK)N. A valid LDPC codeword v={v.sub.0, v.sub.1, . . . , v.sub.N1} must satisfy H.sub.(NK)Nv.sup.T=0.sub.(NK)1that is, v must satisfy NK check equations, each of which corresponds to a row of H. One example of an (N=10, K=5) LDPC code is:
Each row of the above example parity check matrix H is v={v.sub.0, v.sub.1, v.sub.2, v.sub.3, v.sub.4, v.sub.5, v.sub.6, v.sub.7, v.sub.8, v.sub.9}. Note that, for example, v.sub.0v.sub.1v.sub.2v.sub.3=0 for the first row, and v.sub.3v.sub.6v.sub.8v.sub.8v.sub.9=0 for the last row. Similar statements can be written for the remaining rows.
[0031] As shown in
[0032] In layered decoding [1], CNs are processed in a given order instead of in parallel. Layered decoding is fulfilled by iteratively exchanging log likelihood ratios (LLRs) between CNs and VNs that are neighbors. The messages that can be updated in a Tanner graph include: a posteriori LLRs (AP-LLRs) .sub.i at VN i; variable-to-check (V2C) message .sub.i.fwdarw.j, which is the message passed from VN i to (neighboring) CN j; and check-to-variable (C2V) message .sub.j.fwdarw.i, which is the message passed from CN j to (neighboring) VN i.
[0033] Belief propagation (BP) decoding is essential for the successful implementation of LDPC codes. BP iteratively updates the following messages: .sub.i.fwdarw.j, the variable-to-check (V2C) message passed from the VN i to a neighboring CN j; .sub.j.fwdarw.i, the check-to-variable message (C2V) passed from the CN j to a neighboring VN i; and .sub.i, the a posteriori message for the VN i. Other notations that may be used herein include:
[0034] Conventionally, BP decoding is equipped with flooding schedule, where all VNs update the V2C messages and all CNs update the C2V messages in parallel. However, the flooding schedule may require numerous iterations to achieve a desired block error rate (BLER) due to its slow convergence speed. This issue can be mitigated by using layered decoding, which reduces the necessary number of iterations by half. In each iteration of layered decoding, the messages are updated in a CN-by-CN manner, ensuring that the latest messages are immediately exploited by the succeeding CNs and resulting in a faster convergence speed.
[0035] To implement LDPC in practical communication systems, the complexity of LDPC coding should be reduced such that the throughput is improved.
[0036] Exact calculation of the C2V message .sub.j.fwdarw.i for CN s.sub.j and VN v.sub.i rely on the sum-product algorithm (SPA):
Although SPA offers excellent performance, implementation is challenging due to the necessity of hyperbolic functions including high-complexity operations such as exponential and logarithmic computations. Some algorithms may attempt to simplify SPA, invariably at the cost of performance loss. The most well-known simplified SPA is the min-sum algorithm (MSA), the implementation of which is simple since the required operations are comparison and addition:
As an approximation of SPA, MSA is simple but leads to inaccurate calculation and hence performance loss. To take the advantage of both excellent performance and low complexity, the present disclosure applies both SPA and MSA to carefully selected CNs during layered decoding.
[0037] The present disclosure achieves a good trade-off between complexity and performance in layered decoding for LDPC codes by applying the min-sum algorithm and the sum-product algorithm to different check nodes. Layered decoding is provided for one or more LDPC codes based on applying a sum-product algorithm and an approximated sum-product algorithm (e.g., a min-sum algorithm) to one or more different check nodes. That is, the overall mechanism reduces complexity of layered decoding by applying SPA and approximated SPA (e.g., MSA) to different CNs. One or more CNs with low degrees in priority are selected, where a degree of a particular CN is a number of VNs connected to the particular CN. In combination with selected CNs with low degrees in priority, one or both of shortened VNs and punctured VNs may be exploited. For shortened VNs, determination of the CN degree in priority may exclude shortened VNs. For punctured VNs, after determination of the CN degree in priority, CNs connected to a large number of punctured VNs may be selected first.
[0038] The following documents and standards descriptions are hereby incorporated by reference into the present disclosure as if fully set forth herein: [0039] [1] Hocevar, Dale E. A reduced complexity decoder architecture via layered decoding of LDPC codes. IEEE Workshop on Signal Processing Systems, 2004.
[0040]
[0041]
[0042] As shown in
[0043] The gNB 102 provides wireless broadband access to the network 130 for a first plurality of user equipments (UEs) within a coverage area 120 of the gNB 102. The first plurality of UEs includes a UE 111, which may be located in a small business; a UE 112, which may be located in an enterprise; a UE 113, which may be a WiFi hotspot; a UE 114, which may be located in a first residence; a UE 115, which may be located in a second residence; and a UE 116, which may be a mobile device, such as a cell phone, a wireless laptop, a wireless PDA, or the like. The gNB 103 provides wireless broadband access to the network 130 for a second plurality of UEs within a coverage area 125 of the gNB 103. The second plurality of UEs includes the UE 115 and the UE 116. In some embodiments, one or more of the gNBs 101-103 may communicate with each other and with the UEs 111-116 using 5G/NR, long term evolution (LTE), long term evolution-advanced (LTE-A), WiMAX, WiFi, or other wireless communication techniques.
[0044] Depending on the network type, the term base station or BS can refer to any component (or collection of components) configured to provide wireless access to a network, such as transmit point (TP), transmit-receive point (TRP), an enhanced base station (eNodeB or eNB), a 5G/NR base station (gNB), a macrocell, a femtocell, a WiFi access point (AP), or other wirelessly enabled devices. Base stations may provide wireless access in accordance with one or more wireless communication protocols, e.g., 5G/NR 3.sup.rd generation partnership project (3GPP) NR, long term evolution (LTE), LTE advanced (LTE-A), high speed packet access (HSPA), Wi-Fi 802.11a/b/g/n/ac, etc. For the sake of convenience, the terms BS and TRP are used interchangeably in this patent document to refer to network infrastructure components that provide wireless access to remote terminals. Also, depending on the network type, the term user equipment or UE can refer to any component such as mobile station, subscriber station, remote terminal, wireless terminal, receive point, or user device. For the sake of convenience, the terms user equipment and UE are used in this patent document to refer to remote wireless equipment that wirelessly accesses a BS, whether the UE is a mobile device (such as a mobile telephone or smartphone) or is normally considered a stationary device (such as a desktop computer or vending machine).
[0045] The dotted lines show the approximate extents of the coverage areas 120 and 125, which are shown as approximately circular for the purposes of illustration and explanation only. It should be clearly understood that the coverage areas associated with gNBs, such as the coverage areas 120 and 125, may have other shapes, including irregular shapes, depending upon the configuration of the gNBs and variations in the radio environment associated with natural and man-made obstructions.
[0046] As described in more detail below, one or more of the UEs 111-116 include circuitry, programing, or a combination thereof for decoding of low-density parity check codes. In certain embodiments, one or more of the BSs 101-103 include circuitry, programing, or a combination thereof to support LDPC decoding.
[0047] Although
[0048]
[0049] As shown in
[0050] The transceivers 210a-210n receive, from the antennas 205a-205n, incoming radio frequency (RF) signals, such as signals transmitted by UEs in the wireless network 100. The transceivers 210a-210n down-convert the incoming RF signals to generate IF or baseband signals. The IF or baseband signals are processed by receive (RX) processing circuitry in the transceivers 210a-210n and/or controller/processor 225, which generates processed baseband signals by filtering, decoding, and/or digitizing the baseband or IF signals. The controller/processor 225 may further process the baseband signals.
[0051] Transmit (TX) processing circuitry in the transceivers 210a-210n and/or controller/processor 225 receives analog or digital data (such as voice data, web data, e-mail, or interactive video game data) from the controller/processor 225. The TX processing circuitry encodes, multiplexes, and/or digitizes the outgoing baseband data to generate processed baseband or IF signals. The transceivers 210a-210n up-converts the baseband or IF signals to RF signals that are transmitted via the antennas 205a-205n.
[0052] The controller/processor 225 can include one or more processors or other processing devices that control the overall operation of the gNB 102. For example, the controller/processor 225 could control the reception of uplink (UL) channel signals and the transmission of downlink (DL) channel signals by the transceivers 210a-210n in accordance with well-known principles. The controller/processor 225 could support additional functions as well, such as more advanced wireless communication functions. For instance, the controller/processor 225 could support beam forming or directional routing operations in which outgoing/incoming signals from/to multiple antennas 205a-205n are weighted differently to effectively steer the outgoing signals in a desired direction. As another example, the controller/processor 225 could support methods for beam management in JPTA system with multiple component carriers. Any of a wide variety of other functions could be supported in the gNB 102 by the controller/processor 225.
[0053] The controller/processor 225 is also capable of executing programs and other processes resident in the memory 230, such as processes to trigger beam management in JPTA system with multiple component carriers. The controller/processor 225 can move data into or out of the memory 230 as required by an executing process.
[0054] The controller/processor 225 is also coupled to the backhaul or network interface 235. The backhaul or network interface 235 allows the gNB 102 to communicate with other devices or systems over a backhaul connection or over a network. The interface 235 could support communications over any suitable wired or wireless connection(s). For example, when the gNB 102 is implemented as part of a cellular communication system (such as one supporting 5G/NR, LTE, or LTE-A), the interface 235 could allow the gNB 102 to communicate with other gNBs over a wired or wireless backhaul connection. When the gNB 102 is implemented as an access point, the interface 235 could allow the gNB 102 to communicate over a wired or wireless local area network or over a wired or wireless connection to a larger network (such as the Internet). The interface 235 includes any suitable structure supporting communications over a wired or wireless connection, such as an Ethernet or transceiver.
[0055] The memory 230 is coupled to the controller/processor 225. Part of the memory 230 could include a RAM, and another part of the memory 230 could include a Flash memory or other ROM.
[0056] Although
[0057]
[0058] As shown in
[0059] The transceiver(s) 310 receives from the antenna(s) 305, an incoming RF signal transmitted by a gNB of the wireless network 100. The transceiver(s) 310 down-converts the incoming RF signal to generate an intermediate frequency (IF) or baseband signal. The IF or baseband signal is processed by RX processing circuitry in the transceiver(s) 310 and/or processor 340, which generates a processed baseband signal by filtering, decoding, and/or digitizing the baseband or IF signal. The RX processing circuitry sends the processed baseband signal to the speaker 330 (such as for voice data) or is processed by the processor 340 (such as for web browsing data).
[0060] TX processing circuitry in the transceiver(s) 310 and/or processor 340 receives analog or digital voice data from the microphone 320 or other outgoing baseband data (such as web data, e-mail, or interactive video game data) from the processor 340. The TX processing circuitry encodes, multiplexes, and/or digitizes the outgoing baseband data to generate a processed baseband or IF signal. The transceiver(s) 310 up-converts the baseband or IF signal to an RF signal that is transmitted via the antenna(s) 305.
[0061] The processor 340 can include one or more processors or other processing devices and execute the OS 361 stored in the memory 360 in order to control the overall operation of the UE 116. For example, the processor 340 could control the reception of DL channel signals and the transmission of UL channel signals by the transceiver(s) 310 in accordance with well-known principles. In some embodiments, the processor 340 includes at least one microprocessor or microcontroller.
[0062] The processor 340 is also capable of executing other processes and programs resident in the memory 360. For example, the processor 340 may execute processes for beam management in JPTA system with multiple component carriers as described in embodiments of the present disclosure. The processor 340 can move data into or out of the memory 360 as required by an executing process. In some embodiments, the processor 340 is configured to execute the applications 362 based on the OS 361 or in response to signals received from gNBs or an operator. The processor 340 is also coupled to the I/O interface 345, which provides the UE 116 with the ability to connect to other devices, such as laptop computers and handheld computers. The I/O interface 345 is the communication path between these accessories and the processor 340.
[0063] The processor 340 is also coupled to the input 350, which includes, for example, a touchscreen, keypad, etc., and the display 355. The operator of the UE 116 can use the input 350 to enter data into the UE 116. The display 355 may be a liquid crystal display, light emitting diode display, or other display capable of rendering text and/or at least limited graphics, such as from web sites.
[0064] The memory 360 is coupled to the processor 340. Part of the memory 360 could include a random-access memory (RAM), and another part of the memory 360 could include a Flash memory or other read-only memory (ROM).
[0065] Although
[0066]
[0067] As illustrated in
[0068] In the transmit path 400, the channel coding and modulation block 405 receives a set of information bits, applies coding (such as a low-density parity check (LDPC) coding), and modulates the input bits (such as with Quadrature Phase Shift Keying (QPSK) or Quadrature Amplitude Modulation (QAM)) to generate a sequence of frequency-domain modulation symbols. The serial-to-parallel block 410 converts (such as de-multiplexes) the serial modulated symbols to parallel data in order to generate N parallel symbol streams, where N is the IFFT/FFT size used in the gNB 102 and the UE 116. The size N IFFT block 415 performs an IFFT operation on the N parallel symbol streams to generate time-domain output signals. The parallel-to-serial block 420 converts (such as multiplexes) the parallel time-domain output symbols from the size N IFFT block 415 in order to generate a serial time-domain signal. The add cyclic prefix block 425 inserts a cyclic prefix to the time-domain signal. The up-converter 430 modulates (such as up-converts) the output of the add cyclic prefix block 425 to a RF frequency for transmission via a wireless channel. The signal may also be filtered at a baseband before conversion to the RF frequency.
[0069] As illustrated in
[0070] Each of the gNBs 101-103 may implement a transmit path 400 that is analogous to transmitting in the downlink to UEs 111-116 and may implement a receive path 450 that is analogous to receiving in the uplink from UEs 111-116. Similarly, each of UEs 111-116 may implement a transmit path 400 for transmitting in the uplink to gNBs 101-103 and may implement a receive path 450 for receiving in the downlink from gNBs 101-103.
[0071] Each of the components in
[0072] Furthermore, although described as using FFT and IFFT, this is by way of illustration only and should not be construed to limit the scope of the present disclosure. Other types of transforms, such as Discrete Fourier Transform (DFT) and Inverse Discrete Fourier Transform (IDFT) functions, can be used. It will be appreciated that the value of the variable N may be any integer number (such as 1, 2, 3, 4, or the like) for DFT and IDFT functions, while the value of the variable N may be any integer number that is a power of two (such as 1, 2, 4, 8, 16, or the like) for FFT and IFFT functions.
[0073] Although
[0074]
[0075] The example process 500 of
[0076] Layered decoding for a LDPC code is then performed based on application of a sum-product algorithm to some of the CNs and application of an approximated sum-product algorithm to others of the CNs (step 502). The sum-product algorithm is applied to at least some of the selected one or more CNs among the plurality of CNs. The approximated sum-product algorithm is applied to one or more remaining CNs, other than the selected one or more CNs, among the plurality of CNs. In some embodiments, shortening may be taken into account when applying the sum-product algorithm to the selected one or more CNs, such that the sum-product algorithm is applied only to C2V messages for non-shortened VNs connected to the respective CN, while the approximated sum-product algorithm applied to C2V messages for non-shortened VNs connected to the that CN.
[0077] Although
[0078]
[0079] For the sake of simplicity, and
denote the set of the VNs connected to the CN j and the set of the CNs connected to the VN i, respectively.
and
denote
excluding the VN i and
excluding the CN j, respectively. The C2V messages {.sub.j.fwdarw.i: (j,i){0, 1, . . . , NK1} {0, 1, . . . , N1}} are initialized to zeros and the a posteriori messages {.sub.i: i{0, 1, . . . , N1}} are initialized according to the channel observations.
[0080] The procedure 600 begins with a subset, denoted , of CNs being created (step 601), for which SPA is used to calculate the C2V messages. In selecting CNs to form the subset B, priority is given to those CNs with fewer neighboring VNs. By doing so, SPA can be applied to more CNs, meaning that MSA can be applied to fewer CNs, under the restriction of a fixed number of edges utilizing SPA. This allows for mitigating the performance degradation caused by the use of MSA. Embodiments of creating the set B are described below in connection with
based on degree of priority and considering shortening.
based on degree of priority and additionally considering both puncturing and shortening.
[0081] In one iteration of the layered decoding, CNs can be processed sequentially. Processing one of CNs j refers to the message updates according to steps 602, 603, and 604. However, the order of processing CNs is not limited in the present disclosure.
[0082] Based on the latest .sub.i and .sub.j.fwdarw.i, the V2C messages passed from the VNs neighboring the CN j to the CN j are updated (step 602) as follows:
Based on the received V2C messages from the neighboring VNs, the CN j updates the C2V messages and pass those messages back to the neighboring VNs. If the CN j belongs to the set B, SPA is used to compute the C2V messages (step 603) as follows:
Otherwise a simplified SPA (e.g., MSA, although the present disclosure is not limited to MSA) is used to compute the C2V messages.
[0083] Based on the updated C2V messages from the CN j, the a posteriori messages for the VNs V are updated (step 604) as follows:
The latest .sub.i and .sub.j.fwdarw.i will be used to process next CN. The operations in steps 602, 603 and 604 are repeated (step 605) for each of CNs. The updated messages from the processing of current CN can be immediately applied to process next CN, which therefore speeds up the convergence.
[0084] Although
[0085] utilizing SPA.
[0086] The example procedure 700 of containing all CNs being created (step 701). For the LDPC codes of dimension K and length N, there are (NK) CNs and hence
={0, 1, . . . , NK1}. The subset
composed of the CNs employing SPA is created and initialized to the empty set (step 702). A threshold value (or priority threshold) reflecting the number of edges involved in SPA is determined. The threshold value is denoted with d E {0, 1, . . . , D}, where D is a total number of edges in the Tanner graph. The threshold value is used to control the trade-off between performance and complexity in the layered decoding. A larger d leads to improved performance but increased complexity, and vice versa.
[0087] The degree of a CN is defined as the number of the VNs connected to that CN. Let w.sub.j denote the degree of the CN j.
[0088] The CNs of the lowest degree in are identified and form the set
, i.e.,
={j:j
and w.sub.j=w.sub.min}, where w.sub.min=min{w.sub.j:i
} (step 703).
[0089] One of CNs from is added into
and then removed from
, i.e.,
+
{j} and
\{j}, where j
(step 704) The removal prevents the occurrence of duplicate elements within B.
[0090] There may exist multiple CNs in . Adding all CNs from
into
at once may violate the threshold value. Therefore, the operations in steps 703 and 704 are repeated (step 705) to include CNs one-by-one into
until the summation of the degrees of CNs in the set
meets the threshold value. Given a threshold d, SPA can be applied to more layers by prioritizing the low-degree cNs such that performance degradation is mitigated.
[0091] Although
[0092] utilizing SPA.
[0093] In LDPC codes, there may exist punctured VNs whose corresponding bits are not transmitted and for which a posteriori messages can be initialized to zeros for decoding. Let p.sub.j denote the number of the punctured VNs connected to the CN j. In this embodiment, both the degrees of the CNs and the punctured VNs are utilized to construct .
[0094] The example alternative procedure 800 of containing all CNs being created (step 801). For the LDPC codes of dimension K and length N, there are NK CNs and hence
={0, 1, . . . , NK1}.
[0095] The set composed of the CNs employing SPA is created and initialized to the empty set (step 802). A threshold value reflecting the number of edges involved in SPA is determined. The threshold value is denoted with d{0, 1, . . . , D}, where D is total number edges in the Tanner graph. The threshold value is used to control the trade-off between performance and complexity in the layered decoding. A larger d leads to improved performance but increased complexity, and vice versa.
[0096] The degree of a CN is defined as the number of the VNs connected to that CN. Let w.sub.j denote the degree of the CN j.
[0097] The CNs of the lowest degree in are identified and form the set
, i.e.,
={j:j
and w.sub.j=w.sub.min}, where w.sub.min=min{w.sub.j:i
} (step 803).
[0098] From , the CNs neighboring the largest number of punctured VNs are selected to form the set
.Math.
, that is
={j:j
and p.sub.j=p.sub.max}, where p.sub.max=max{p:i
}. One CN from
is added into
and then removed from
, i.e.,
{j} and
+
\{j}, where j
(step 804). The removal prevents the occurrence of duplicate elements within
.
[0099] There may exist multiple CNs in . Adding all CNs from
into
at once may violate the threshold value. Therefore, the operations in steps 803 and 804 are repeated (step 805) to include CNs one-by-one into
until the summation of the degrees of CNs in the set
meets the threshold value. Given a threshold d, SPA can be applied to more layers by prioritizing the low-degree cNs and hence performance degradation is mitigated. Due to the lack of the channel observations, the punctured VNs are vulnerable to bit errors. Applying SPA, which offers accurate calculations of messages, to as many punctured VNs as possible further mitigates the performance degradation.
[0100] Although
[0101]
[0102] For the sake of simplicity,
[0103] A subset, denoted , of CNs is created (step 901), where SPA is used to calculate the C2V messages. In selecting CNs to form
, priority is given to those with fewer neighboring VNs by additionally considering shortening. By doing so, SPA can be applied to more CNs, meaning that MSA can be applied to fewer CNs, under the restriction of a fixed number of edges utilizing SPA. This allows for mitigation of performance degradation caused by the use of MSA. Embodiments of creating the set
are described below in connection with
based on degree of priority.
based on degree of priority and additionally considering puncturing.
based on degree of priority and considering shortening.
[0104] Since the updates of the C2V messages depend on the received V2C messages of small values, .sub.i.fwdarw.j=+ can be excluded from the calculations of .sub.j.fwdarw.i. In addition, the hard decisions at the shortened VNs are zeros, and therefore there is no need to update the messages regarding the shortened VNs. In one iteration of the layered decoding, CNs can be processed sequentially. Processing one of CNs j refers to the message updates according to steps 902, 903 and 904. However, the order of processing CNs is not limited in this disclosure.
[0105] Based on the latest .sub.i and .sub.j.fwdarw.i, the V2C messages passed from the non-shortened VNs neighboring the CN j to the CN j are updated (step 902) as follows:
where denotes the set of the VNs that are connected to the CN j and not shortened.
[0106] Based on the received V2C messages from the neighboring non-shortened VNs, the CN j updates the C2V messages (step 903) and passes those messages back to the neighboring non-shortened VNs. If the CN j belongs to , SPA is applied; otherwise a simplified SPA, e.g., MSA, is used to compute the messages as follows:
where represents
excluding the VN i.
[0107] Based on the updated C2V messages from the CN j, the a posteriori messages for the non-shortened VNs are updated (step 804) as follows:
[0108] The operations in steps 902, 903, and 904 are repeated for each of the CNs (step 905). The updated messages from the processing of current CN can be immediately applied to process next CN, which therefore speeds up convergence.
[0109] Although
[0110] utilizing SPA.
[0111] In the embodiment of . Let s.sub.j denote the number of the shortened VNs which is connected to the CN j. In the procedure 1000 of
containing all CNs is created (step 1001). For the LDPC codes of dimension K and length N, there are NK CNs and hence
={0, 1, . . . , NK1}.
[0112] Since the message updates corresponding to the shortened VNs can be removed, a metric for each of the CNs can be computed by considering the removal of the shortened VNs (step 1002). Let q.sub.j denote the metric for the CN j. The value of q.sub.j corresponds to the degree of the CN j minus the number of the shortened VNs connected to the CN j, that is q.sub.j=w.sub.js.sub.j.
[0113] The set B composed of the CNs employing SPA is created and initialized to the empty set (step 1003). A threshold value reflecting the number of edges involved in SPA is determined. The threshold value is denoted with d{0,1, . . . , D}, where D is total number edges in the Tanner graph. The threshold value is used to control the trade-off between performance and complexity in the layered decoding. A larger d leads to improved performance but increased complexity, and vice versa.
[0114] The CNs of the smallest metric in A are identified and form the set A, i.e., A={j:j and q.sub.j=q.sub.min}, where q.sub.min=min{q.sub.j:i
} (step 1004).
[0115] One of the CNs from is added into
and then removed from
, i.e.,
{j} and
\{j}, where j
(step 1005). The removal prevents the occurrence of duplicate elements within
.
[0116] There may exist multiple CNs in . Adding all CNs from
into
at once may violate the threshold value. Therefore, the operations in steps 1004 and 1005 are repeated (step 1006) to include CNs one-by-one into
until the summation of the degrees of CNs in the set
meets the threshold value. Given a threshold d, SPA can be applied to more layers by prioritizing the low-degree cNs and hence performance degradation is mitigated.
[0117] Although
[0118] utilizing SPA.
[0119] In the embodiment of takes into account the degrees of the CNs, the punctured VNs, and the shortened VNs. A set
containing all CNs is created (step 1101). For the LDPC codes of dimension K and length N, there are NK CNs and hence
={0, 1, . . . , NK1}.
[0120] Since the message updates corresponding to the shortened VNs can be removed, a metric for each of the CNs can be computed by considering the removal of the shortened VNs (step 1102). Let q.sub.j denote the metric for the CN j. The value of q, corresponds to the degree of the CN j minus the number of the shortened VNs connected to the CN j, that is q.sub.j=w.sub.js.sub.j.
[0121] The set composed of the CNs employing SPA is created and initialized to the empty set (step 1103). A threshold value reflecting the number of edges involved in SPA is determined. The threshold value is denoted with d{0,1, . . . , D}, where D is total number edges in the Tanner graph. The threshold value is used to control the trade-off between performance and complexity in layered decoding. A larger d leads to improved performance but increased complexity, and vice versa.
[0122] The CNs of the smallest metric in are identified and form the set
, i.e.,
={j:j
and q.sub.j=q.sub.min}, where q.sub.min=min{q.sub.j:i
} (step 1104).
[0123] From , the CNs neighboring the largest number of punctured VNs are selected to form the set
.Math.
, that is
={j:j
and p.sub.j=p.sub.max}, where p.sub.max=max{p.sub.j:i
} (step 1105). One CN from
is added into
and then removed from
, i.e.,
{j} and
\{j}, where j
. The removal prevents the occurrence of duplicate elements within
.
[0124] There may exist multiple CNs in . Adding all CNs from
into
at once may violate the threshold value. Therefore, the operations in 1104 and 1105 are repeated to include CNs one-by-one into
until the summation of the degrees of CNs in the set
meets the threshold value (step 1106). Given a threshold d, SPA can be applied to more layers by prioritizing the low-degree cNs and hence performance degradation is mitigated. Due to the lack of the channel observations, the punctured VNs are vulnerable to bit errors. Applying SPA, which offers accurate calculations of messages, to as many punctured VNs as possible further mitigates performance degradation.
[0125] Although
[0126]
[0127]
where denotes the set of CNs applying SPA and d.sub.j denotes the degree of CN j. Given the total number of edges involved in SPA, i.e.,
as the number of the layers employing SPA (i.e., ||) increases, more complexity reduction can be achieved. Selecting the CNs of low degrees in priority can include more layers employing SPA.
[0128] Any of the above variation embodiments can be utilized independently or in combination with at least one other variation embodiment. The above flowchart(s) illustrate example methods that can be implemented in accordance with the principles of the present disclosure and various changes could be made to the methods illustrated in the flowchart(s) herein. For example, while shown as a series of steps, various steps in each figure could overlap, occur in parallel, occur in a different order, or occur multiple times. In another example, steps may be omitted or replaced by other steps.
[0129] Although the present disclosure has been described with exemplary embodiments, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims. None of the descriptions in this application should be read as implying that any particular element, step, or function is an essential element that must be included in the claims scope. The scope of patented subject matter is defined by the claims.