LAYERED DECODING OF LOW DENSITY PARITY CHECK (LDPC) CODES

20260081621 ยท 2026-03-19

    Inventors

    Cpc classification

    International classification

    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] FIG. 1 illustrates an example wireless network within which layered LDPC decoding selectively applying SPA and simplified SPA to check nodes may be implemented according to embodiments of the present disclosure;

    [0015] FIG. 2 illustrates an example gNB within which layered LDPC decoding selectively applying SPA and simplified SPA to check nodes may be implemented according to embodiments of the present disclosure;

    [0016] FIG. 3 illustrates an example UE 116 within which layered LDPC decoding selectively applying SPA and simplified SPA to check nodes may be implemented according to embodiments of the present disclosure;

    [0017] FIG. 4A and FIG. 4B illustrate an example of wireless transmit and receive paths, respectively, within the gNB of FIG. 2 and/or the UE of FIG. 3;

    [0018] FIG. 5 illustrates a flowchart of a process for layered LDPC decoding selectively applying SPA and simplified SPA to check nodes according to embodiments of the present disclosure;

    [0019] FIG. 6 illustrates a flowchart of an example procedure for performing an iteration of layered LDPC decoding selectively applying SPA and simplified SPA to check nodes according to embodiments of the present disclosure;

    [0020] FIG. 7 illustrates a flowchart of an example procedure for creating a subset of CNs to which SPA is applied based on degree of priority during an iteration of layered LDPC decoding according to embodiments of the present disclosure;

    [0021] FIG. 8 illustrates a flowchart of an example procedure for creating a subset of CNs to which SPA is applied based on degree of priority while consideration puncturing during an iteration of layered LDPC decoding according to embodiments of the present disclosure;

    [0022] FIG. 9 illustrates a flowchart of an alternative example procedure for performing an iteration of layered LDPC decoding selectively applying SPA and simplified SPA to check nodes while considering shortening according to embodiments of the present disclosure;

    [0023] FIG. 10 illustrates a flowchart of another alternative example procedure for creating a subset of CNs to which SPA is applied based on degree of priority during an iteration of layered LDPC decoding, with consideration of shortening, according to embodiments of the present disclosure;

    [0024] FIG. 11 illustrates a flowchart of still another alternative example procedure for creating a subset of CNs to which SPA is applied based on degree of priority during an iteration of layered LDPC decoding, with consideration of both shortening and puncturing, according to embodiments of the present disclosure;

    [0025] FIG. 12A illustrates comparisons between simulations of layered decoding of low-density parity check codes using only SPA and using a combination of SPA and MSA in accordance with the present disclosure;

    [0026] FIG. 12B illustrates simulations of the ratio of reduction in hyperbolic function as a function of information size achieved by selectively applying SPA and simplified SPA to check nodes according to embodiments of the present disclosure; and

    [0027] FIG. 13 illustrates an example parity check matrix and FIGS. 13A through 13C illustrate processing of check nodes CNs for a single iteration of layered decoding of the parity check matrix of FIG. 13 in a natural order.

    DETAILED DESCRIPTION

    [0028] FIGS. 1-12B, discussed below, and the various, non-limiting embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged system or device.

    [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:

    [00001] H = [ 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 ] .

    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 FIG. 13, LDPC codes can also be represented by the Tanner graph (where the example in FIG. 13 corresponds to the example parity check matrix H above), which is composed of two types of nodes, called check node (CN) and variable node (VN). The VN i is connected to the CN j, whenever h.sub.j,i=1. A CN and a VN are neighbors whenever the Cn and the VN are connected. Accordingly, in a Tanner graph, there are (NK) CNs, one for each check equation, and N VNs, one for each codeword bit. There exists an edge connection between CN j and VN i whenever h.sub.j,i=1. There exists a one-to-one mapping between a particular parity check matrix and the counterpart Tanner graph.

    [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. FIGS. 13A through 13C illustrate processing of the CNs for a single iteration of layered decoding of the parity check matrix of FIG. 13 in a natural order. FIG. 13A illustrates messages exchanged when j=0 for a particular iteration, and FIG. 13B illustrates messages exchanged when j=1 for that iteration. The messaging when j=2 and when j=3 is omitted for simplicity and clarity, but the messaging when j=4 is illustrated in FIG. 13C. From FIG. 13C, layered decoding returns to FIG. 13A for the next iteration.

    [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:

    [00002] j = { VN indices connected to CN j } , e . g . , 0 = { 0 , 1 , 2 , 3 } for FIG . 13 ; j \ i = { VN indices connected to CN j } - { i } , e . g . , 0 \1 = { 0 , 2 , 3 } for FIG . 13 ; j = { VN indices connected to VN i } , e . g . , 1 = { 0 , 2 } for FIG . 13 ; and i \ j = { CN indices connected to VN i } - { j } , e . g . , 1 \0 = { 2 } for FIG . 13.

    [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):

    [00003] j .fwdarw. i = 2 tan h - 1 ( .Math. i j \ i tan h ( i .fwdarw. j ) ) .

    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:

    [00004] j .fwdarw. i = ( .Math. i j \ i sgn ( i .fwdarw. j ) ) min i j i .Math. "\[LeftBracketingBar]" i .fwdarw. j .Math. "\[RightBracketingBar]" .

    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] FIGS. 1-4 below describe various embodiments implemented in wireless communications systems and with the use of orthogonal frequency division multiplexing (OFDM) or orthogonal frequency division multiple access (OFDMA) communication techniques. The descriptions of FIGS. 1-4 are not meant to imply physical or architectural limitations to how different embodiments may be implemented. Different embodiments of the present disclosure may be implemented in any suitably arranged communications system.

    [0041] FIG. 1 illustrates an example wireless network 100 within which layered LDPC decoding selectively applying SPA and simplified SPA to check nodes may be implemented according to embodiments of the present disclosure. The embodiment of the wireless network 100 shown in FIG. 1 is for illustration only. Other embodiments of the wireless network 100 could be used without departing from the scope of this disclosure.

    [0042] As shown in FIG. 1, the wireless network 100 includes a gNB 101 (e.g., base station, BS), a gNB 102, and a gNB 103. The gNB 101 communicates with the gNB 102 and the gNB 103. The gNB 101 also communicates with at least one network 130, such as the Internet, a proprietary Internet Protocol (IP) network, or other data network.

    [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 FIG. 1 illustrates one example of a wireless network, various changes may be made to FIG. 1. For example, the wireless network 100 could include any number of gNBs and any number of UEs in any suitable arrangement. Also, the gNB 101 could communicate directly with any number of UEs and provide those UEs with wireless broadband access to the network 130. Similarly, each gNB 102-103 could communicate directly with the network 130 and provide UEs with direct wireless broadband access to the network 130. Further, the gNBs 101, 102, and/or 103 could provide access to other or additional external networks, such as external telephone networks or other types of data networks.

    [0048] FIG. 2 illustrates an example gNB 102 within which layered LDPC decoding selectively applying SPA and simplified SPA to check nodes may be implemented according to embodiments of the present disclosure. The embodiment of the gNB 102 illustrated in FIG. 2 is for illustration only, and the gNBs 101 and 103 of FIG. 1 could have the same or similar configuration. However, gNBs come in a wide variety of configurations, and FIG. 2 does not limit the scope of this disclosure to any particular implementation of a gNB.

    [0049] As shown in FIG. 2, the gNB 102 includes multiple antennas 205a-205n, multiple transceivers 210a-210n, a controller/processor 225, a memory 230, and a backhaul or network interface 235.

    [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 FIG. 2 illustrates one example of gNB 102, various changes may be made to FIG. 2. For example, the gNB 102 could include any number of each component shown in FIG. 2. Also, various components in FIG. 2 could be combined, further subdivided, or omitted and additional components could be added according to particular needs.

    [0057] FIG. 3 illustrates an example UE 116 within which layered LDPC decoding selectively applying SPA and simplified SPA to check nodes may be implemented according to embodiments of the present disclosure. The embodiment of the UE 116 illustrated in FIG. 3 is for illustration only, and the UEs 111-115 of FIG. 1 could have the same or similar configuration. However, UEs come in a wide variety of configurations, and FIG. 3 does not limit the scope of this disclosure to any particular implementation of a UE.

    [0058] As shown in FIG. 3, the UE 116 includes antenna(s) 305, a transceiver(s) 310, and a microphone 320. The UE 116 also includes a speaker 330, a processor 340, an input/output (I/O) interface (IF) 345, an input 350, a display 355, and a memory 360. The memory 360 includes an operating system (OS) 361 and one or more applications 362.

    [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 FIG. 3 illustrates one example of UE 116, various changes may be made to FIG. 3. For example, various components in FIG. 3 could be combined, further subdivided, or omitted and additional components could be added according to particular needs. As a particular example, the processor 340 could be divided into multiple processors, such as one or more central processing units (CPUs) and one or more graphics processing units (GPUs). In another example, the transceiver(s) 310 may include any number of transceivers and signal processing chains and may be connected to any number of antennas. Also, while FIG. 3 illustrates the UE 116 configured as a mobile telephone or smartphone, UEs could be configured to operate as other types of mobile or stationary devices.

    [0066] FIG. 4A and FIG. 4B illustrate an example of wireless transmit and receive paths 400 and 450, respectively, according to embodiments of the present disclosure. For example, a transmit path 400 may be described as being implemented in a gNB (such as gNB 102), while a receive path 450 may be described as being implemented in a UE (such as UE 116). However, it will be understood that the receive path 450 can be implemented in a gNB and that the transmit path 400 can be implemented in a UE. In some embodiments, the receive path 450 is configured for decoding of low-density parity check codes as described in embodiments of the present disclosure. For example, embodiments of LDPC decoding as described herein may be implemented in connection with channel decoding and demodulation 480 depicted in FIG. 4B.

    [0067] As illustrated in FIG. 4A, the transmit path 400 includes a channel coding and modulation block 405, a serial-to-parallel (S-to-P) block 410, a size N Inverse Fast Fourier Transform (IFFT) block 415, a parallel-to-serial (P-to-S) block 420, an add cyclic prefix block 425, and an up-converter (UC) 430. The receive path 450 includes a down-converter (DC) 455, a remove cyclic prefix block 460, a S-to-P block 465, a size N Fast Fourier Transform (FFT) block 470, a parallel-to-serial (P-to-S) block 475, and a channel decoding and demodulation block 480.

    [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 FIG. 4B, the down-converter 455 down-converts the received signal to a baseband frequency, and the remove cyclic prefix block 460 removes the cyclic prefix to generate a serial time-domain baseband signal. The serial-to-parallel block 465 converts the time-domain baseband signal to parallel time-domain signals. The size N FFT block 470 performs an FFT algorithm to generate N parallel frequency-domain signals. The (P-to-S) block 475 converts the parallel frequency-domain signals to a sequence of modulated data symbols. The channel decoding and demodulation block 480 demodulates and decodes the modulated symbols to recover the original input data stream.

    [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 FIGS. 4A and 4B can be implemented using only hardware or using a combination of hardware and software/firmware. As a particular example, at least some of the components in FIGS. 4A and 4B may be implemented in software, while other components may be implemented by configurable hardware or a mixture of software and configurable hardware. For instance, the FFT block 470 and the IFFT block 415 may be implemented as configurable software algorithms, where the value of size N may be modified according to the implementation.

    [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 FIGS. 4A and 4B illustrate examples of wireless transmit and receive paths 400 and 450, respectively, various changes may be made to FIGS. 4A and 4B. For example, various components in FIGS. 4A and 4B can be combined, further subdivided, or omitted and additional components can be added according to particular needs. Also, FIGS. 4A and 4B are meant to illustrate examples of the types of transmit and receive paths that can be used in a wireless network. Any other suitable architectures can be used to support wireless communications in a wireless network.

    [0074] FIG. 5 illustrates a flowchart of a process 500 for layered LDPC decoding selectively applying SPA and simplified SPA to check nodes according to embodiments of the present disclosure. For example, the process 500 for layered decoding of low-density parity check codes can be performed by the UE 116, the gNB 102, and/or network 130 in the wireless network 100 of FIG. 1. This example is for illustration only and other embodiments can be used without departing from the scope of the present disclosure.

    [0075] The example process 500 of FIG. 5 for decoding LDPC codes in a communication system begins with selecting one or more of a plurality of CNs based on degree in priority (step 501). The degree in priority for each of the plurality of CNs is based on a number of VNs connected to the respective CN. In some embodiments, the selection of one or more of a plurality of CNs based on degree in priority may also take into account shortening, puncturing, or both.

    [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 FIG. 5 illustrates one example of a process 500 for LDPC decoding, various changes may be made to FIG. 5. For example, while shown as a series of steps, various steps in FIG. 5 could overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times).

    [0078] FIG. 6 illustrates a flowchart of an example procedure 600 for an iteration of layered LDPC decoding selectively applying SPA and simplified SPA to check nodes according to embodiments of the present disclosure. For example, procedure 600 for layered decoding of low-density parity check codes can be performed by the UE 116, the gNB 102, and/or network 130 in the wireless network 100 of FIG. 1. This example is for illustration only and other embodiments can be used without departing from the scope of the present disclosure.

    [0079] For the sake of simplicity, FIG. 6 presents the operations concerning the message updates in one iteration for a first CN, which can be generalized to other iterations for the remaining CNs. Let custom-character and custom-character denote the set of the VNs connected to the CN j and the set of the CNs connected to the VN i, respectively. custom-character and custom-character denote custom-character excluding the VN i and custom-character 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 custom-character, 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 FIGS. 7, 8, 10, and 11: FIG. 7 discloses creating the set B based on degree of priority. FIG. 8 discloses creating the set B based on degree of priority and additionally considering puncturing. FIG. 10 discloses creating the set custom-character based on degree of priority and considering shortening. FIG. 11 discloses creating the set custom-character 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:

    [00005] i .fwdarw. j i - j .fwdarw. i for i j .

    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:

    [00006] j .fwdarw. i { 2 tan h - 1 ( .Math. i j \ i tan h ( i .fwdarw. j 2 ) ) , j ( .Math. i j \ i sgn ( i .fwdarw. j ) ) min i j i .Math. "\[LeftBracketingBar]" i .fwdarw. j .Math. "\[RightBracketingBar]" , j .Math. c , for i j

    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:

    [00007] i i .fwdarw. j + j .fwdarw. i for i j .

    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 FIG. 6 illustrates one example of a procedure 600 for LDPC decoding, various changes may be made to FIG. 6. For example, while shown as a series of steps, various steps in FIG. 6 could overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times).

    [0085] FIG. 7 illustrates a flowchart of an example procedure 700 for creating a subset of CNs to which SPA is applied based on degree of priority during an iteration of layered LDPC decoding according to embodiments of the present disclosure. For example, the procedure 700 for creating a subset of CNs employing SPA can be performed by the UE 116, the gNB 102, and/or network 130 in the wireless network 100 of FIG. 1. This example is for illustration only and other embodiments can be used without departing from the scope of the present disclosure. The example procedure 700 may be employed for step 601 of FIG. 6 or for step 901 of FIG. 9, to construct a subset custom-character utilizing SPA.

    [0086] The example procedure 700 of FIG. 7 begins with a set custom-character containing all CNs being created (step 701). For the LDPC codes of dimension K and length N, there are (NK) CNs and hence custom-character={0, 1, . . . , NK1}. The subset custom-character 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 custom-character are identified and form the set custom-character, i.e., custom-character={j:jcustom-character and w.sub.j=w.sub.min}, where w.sub.min=min{w.sub.j:icustom-character} (step 703).

    [0089] One of CNs from custom-character is added into custom-character and then removed from custom-character, i.e., custom-character+custom-charactercustom-character{j} and custom-charactercustom-character\{j}, where jcustom-character (step 704) The removal prevents the occurrence of duplicate elements within B.

    [0090] There may exist multiple CNs in custom-character. Adding all CNs from custom-character into custom-character 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 custom-character until the summation of the degrees of CNs in the set custom-character 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 FIG. 7 illustrates one example of a procedure 700 for creating a subset of CNs employing SPA during an iteration of layered LDPC decoding, various changes may be made to FIG. 7. For example, while shown as a series of steps, various steps in FIG. 7 could overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times).

    [0092] FIG. 8 illustrates a flowchart of an example procedure 800 for creating a subset of CNs to which SPA is applied based on degree of priority while consideration puncturing during an iteration of layered LDPC decoding according to embodiments of the present disclosure. For example, the alternative example procedure 800 for creating a subset of CNs employing SPA can be performed by the UE 116, the gNB 102, and/or network 130 in the wireless network 100 of FIG. 1. This example is for illustration only and other embodiments can be used without departing from the scope of the present disclosure. The alternative example procedure 800 may be employed for step 601 of FIG. 6 or for step 901 of FIG. 9, to construct a subset custom-character 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 custom-character.

    [0094] The example alternative procedure 800 of FIG. 8 begins with a set custom-character containing all CNs being created (step 801). For the LDPC codes of dimension K and length N, there are NK CNs and hence custom-character={0, 1, . . . , NK1}.

    [0095] The set custom-character 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 custom-character are identified and form the set custom-character, i.e., custom-character={j:jcustom-character and w.sub.j=w.sub.min}, where w.sub.min=min{w.sub.j:icustom-character} (step 803).

    [0098] From custom-character, the CNs neighboring the largest number of punctured VNs are selected to form the set custom-character.Math.custom-character, that is custom-character={j:jcustom-character and p.sub.j=p.sub.max}, where p.sub.max=max{p:icustom-character}. One CN from custom-character is added into custom-character and then removed from custom-character, i.e., custom-charactercustom-character{j} and custom-character+custom-character\{j}, where jcustom-character (step 804). The removal prevents the occurrence of duplicate elements within custom-character.

    [0099] There may exist multiple CNs in custom-character. Adding all CNs from custom-character into custom-character 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 custom-character until the summation of the degrees of CNs in the set custom-character 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 FIG. 8 illustrates one alternative example of a procedure 800 for creating a subset of CNs employing SPA during an iteration of layered LDPC decoding, various changes may be made to FIG. 8. For example, while shown as a series of steps, various steps in FIG. 8 could overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times).

    [0101] FIG. 9 illustrates a flowchart of an alternative example procedure 900 for performing an iteration of layered LDPC decoding selectively applying SPA and simplified SPA to check nodes while considering shortening according to embodiments of the present disclosure. For example, the alternative example procedure 900 for an iteration of layered LDPC decoding can be performed by the UE 116, the gNB 102, and/or network 130 in the wireless network 100 of FIG. 1. This example is for illustration only and other embodiments can be used without departing from the scope of the present disclosure.

    [0102] For the sake of simplicity, FIG. 9 presents the operations concerning the message updates in one iteration, which can be generalized to other iterations. In LDPC codes, there may exist shortened VNs whose corresponding bits are fixed to zeros and known by the decoder. The bits corresponding to the shortening VNs may not be transmitted and for which a posteriori messages can be initialized to infinity for decoding. Let S.sub.j denote the set containing the shortened VNs connected to the CN j.

    [0103] A subset, denoted custom-character, of CNs is created (step 901), where SPA is used to calculate the C2V messages. In selecting CNs to form custom-character, 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 custom-character are described below in connection with FIGS. 7, 8, 10, and 11: FIG. 7 discloses creating the set custom-character based on degree of priority. FIG. 8 discloses creating the set custom-character based on degree of priority and additionally considering puncturing. FIG. 10 discloses creating the set custom-character based on degree of priority and considering shortening. FIG. 11 discloses creating the set B based on degree of priority and additionally considering both puncturing and 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:

    [00008] i .fwdarw. j i - j .fwdarw. i for i j ,

    where custom-character 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 custom-character, SPA is applied; otherwise a simplified SPA, e.g., MSA, is used to compute the messages as follows:

    [00009] j .fwdarw. i { 2 tan h - 1 ( .Math. i j \ i tan h ( i .fwdarw. j 2 ) ) , i ( .Math. i j \ i sgn ( i .fwdarw. j ) ) min i j i .Math. "\[LeftBracketingBar]" i .fwdarw. j .Math. "\[RightBracketingBar]" , i .Math. c , for i j

    where custom-character represents custom-character excluding the VN i.

    [0107] Based on the updated C2V messages from the CN j, the a posteriori messages for the non-shortened VNs custom-character are updated (step 804) as follows:

    [00010] i i .fwdarw. j + j .fwdarw. i for i j .

    [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 FIG. 9 illustrates one procedure 900 for an iteration of layered LDPC decoding, various changes may be made to FIG. 9. For example, while shown as a series of steps, various steps in FIG. 9 could overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times).

    [0110] FIG. 10 illustrates a flowchart of another alternative example procedure 1000 for creating a subset of CNs to which SPA is applied based on degree of priority during an iteration of layered LDPC decoding, with consideration of shortening, according to embodiments of the present disclosure. For example, the example procedure 1000 for creating a subset of CNs employing SPA can be performed by the UE 116, the gNB 102, and/or network 130 in the wireless network 100 of FIG. 1. This example is for illustration only and other embodiments can be used without departing from the scope of the present disclosure. The example procedure 1000 may be employed for step 601 of FIG. 6 or for step 901 of FIG. 9, to construct a subset custom-character utilizing SPA.

    [0111] In the embodiment of FIG. 10, both the degrees of the CNs and the shortened VNs are utilized to construct custom-character. Let s.sub.j denote the number of the shortened VNs which is connected to the CN j. In the procedure 1000 of FIG. 10, a set custom-character containing all CNs is created (step 1001). For the LDPC codes of dimension K and length N, there are NK CNs and hence custom-character={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:jcustom-character and q.sub.j=q.sub.min}, where q.sub.min=min{q.sub.j:icustom-character} (step 1004).

    [0115] One of the CNs from custom-character is added into custom-character and then removed from custom-character, i.e., custom-charactercustom-character{j} and custom-charactercustom-character\{j}, where jcustom-character (step 1005). The removal prevents the occurrence of duplicate elements within custom-character.

    [0116] There may exist multiple CNs in custom-character. Adding all CNs from custom-character into custom-character 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 custom-characteruntil the summation of the degrees of CNs in the set custom-charactermeets 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 FIG. 10 illustrates one alternative example of a procedure 1000 for creating a subset of CNs employing SPA during an iteration of layered LDPC decoding, various changes may be made to FIG. 10. For example, while shown as a series of steps, various steps in FIG. 10 could overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times).

    [0118] FIG. 11 illustrates a flowchart of still another alternative example procedure 1100 for creating a subset of CNs to which SPA is applied based on degree of priority during an iteration of layered LDPC decoding, with consideration of both shortening and puncturing, according to embodiments of the present disclosure. For example, the procedure 1100 for creating a subset of CNs employing SPA can be performed by the UE 116, the gNB 102, and/or network 130 in the wireless network 100 of FIG. 1. This example is for illustration only and other embodiments can be used without departing from the scope of the present disclosure. The procedure 1100 may be employed for step 601 of FIG. 6 or for step 901 of FIG. 9, to construct a subset custom-character utilizing SPA.

    [0119] In the embodiment of FIG. 11, the construction of custom-character takes into account the degrees of the CNs, the punctured VNs, and the shortened VNs. A set custom-character containing all CNs is created (step 1101). For the LDPC codes of dimension K and length N, there are NK CNs and hence custom-character={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 custom-character 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 custom-character are identified and form the set custom-character, i.e., custom-character={j:jcustom-character and q.sub.j=q.sub.min}, where q.sub.min=min{q.sub.j:icustom-character} (step 1104).

    [0123] From custom-character, the CNs neighboring the largest number of punctured VNs are selected to form the set custom-character.Math.custom-character, that is custom-character={j:jcustom-character and p.sub.j=p.sub.max}, where p.sub.max=max{p.sub.j:icustom-character} (step 1105). One CN from custom-character is added into custom-character and then removed from custom-character, i.e., custom-charactercustom-character{j} and custom-charactercustom-character\{j}, where jcustom-character. The removal prevents the occurrence of duplicate elements within custom-character.

    [0124] There may exist multiple CNs in custom-character. Adding all CNs from custom-character into custom-character at once may violate the threshold value. Therefore, the operations in 1104 and 1105 are repeated to include CNs one-by-one into custom-character until the summation of the degrees of CNs in the set custom-character 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 FIG. 11 illustrates one alternative example of a procedure 1100 for creating a subset of CNs employing SPA during an iteration of layered LDPC decoding, various changes may be made to FIG. 11. For example, while shown as a series of steps, various steps in FIG. 11 could overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times).

    [0126] FIG. 12A illustrates comparisons between simulations of layered decoding of low-density parity check codes using only SPA and using a combination of SPA and MSA in accordance with the present disclosure, in terms of the required energy per symbol to noise power spectral density ratio (Es/N0) as a function of information size. The maximum number of iterations is 10, and the desired block error rate (BLER) is 10.sup.2. The traces labeled SPA in the legend apply SPA to all CNs; the traces labeled First 4 Layer apply SPA to the first four layers of the base graphs for those labeled SPA; and the traces labeled Proposed apply the approach described herein.

    [0127] FIG. 12B illustrates simulations of the ratio of reduction in hyperbolic function, in percentage (%), as a function of information size achieved by selectively applying SPA and simplified SPA to check nodes according to embodiments of the present disclosure. The number of times of using hyberbolic functions is given by:

    [00011] .Math. j SPA ( 3 d j - 6 ) = 3 .Math. j SPA d j - 6 .Math. "\[LeftBracketingBar]" SPA .Math. "\[RightBracketingBar]" ,

    where custom-character 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.,

    [00012] .Math. j SPA d j ,

    as the number of the layers employing SPA (i.e., |custom-character|) 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.