An apparatus determines a code block size (CBS) of information bits contained in a codeword of low-density parity check (LDPC) coding. The apparatus compares the CBS with at least one threshold, determines, based on a result of the comparison, a Kb number and determines a Kp number based on a code rate and the Kb number. The apparatus generates a parity check matrix. An information portion of the parity check matrix is a first matrix formed by M number of second square matrices. M is equal to Kp multiplied by Kb. A total number of columns in the Kb number of second square matrices is equal to a total number of bits of the CBS. One or more matrices of the M number of second square matrices are circular permutation matrices. The apparatus operates an LDPC encoder or an LDPC decoder based on the parity check matrix.

BACKGROUND

Field

The present disclosure relates generally to mobile communication systems, and more particularly, to methods and apparatus of quasi-cyclic-low-density parity-check (QC-LDPC) coding.

Background

These multiple access technologies have been adopted in various telecommunication standards to provide a common protocol that enables different wireless devices to communicate on a municipal, national, regional, and even global level. An example telecommunication standard is 5G New Radio (NR). 5G NR is part of a continuous mobile broadband evolution promulgated by Third Generation Partnership Project (3GPP) to meet new requirements associated with latency, reliability, security, scalability (e.g., with Internet of Things (IoT)), and other requirements. Some aspects of 5G NR may be based on the 4G Long Term Evolution (LTE) standard. The 3GPP has also agreed that QC-LDPC will be used for in 5G NR data channel. There exists a need for further improvements in QC-LDPC coding.

SUMMARY

In an aspect of the disclosure, a method, a computer-readable medium, and an apparatus are provided. The apparatus may be a UE or a base station. The apparatus determines a code block size (CBS) of information bits contained in a codeword of low-density parity check (LDPC) coding. The apparatus also compares the CBS with at least one threshold and determines, based on a result of the comparison, a Kb number. Additionally, the apparatus determines a Kp number based on a code rate and the Kb number. The apparatus further generates a parity check matrix of the LDPC coding. An information portion of the parity check matrix is a first matrix formed by M number of second square matrices. M is equal to Kp multiplied by Kb. A total number of columns in the Kb number of second square matrices is equal to a total number of bits of the CBS. One or more matrices of the M number of second square matrices are circular permutation matrices. The apparatus operates an LDPC encoder or an LDPC decoder based on the parity check matrix.

In another aspect, an apparatus for a wireless communication includes a processor and a memory device coupled to the processor. The memory device contains a set of instructions that, when executed by the processor, cause the processor to determine a code block size (CBS) of information bits contained in a codeword of low-density parity check (LDPC) coding. The set of instructions further cause the processor to compare the CBS with at least one threshold and determine, based on a result of the comparison, a Kb number. Additionally, the set of instructions cause the processor to determine a Kp number based on a code rate and the Kb number. The set of instructions also cause the processor to generate a parity check matrix of the LDPC coding. An information portion of the parity check matrix is a first matrix formed by M number of second square matrices. M is equal to Kp multiplied by Kb. A total number of columns in the Kb number of second square matrices is equal to a total number of bits of the CBS. One or more matrices of the M number of second square matrices are circular permutation matrices. Lastly, the set of instructions cause the processor to operate an LDPC encoder or an LDPC decoder based on the parity check matrix.

DETAILED DESCRIPTION

The base stations102(collectively referred to as Evolved Universal Mobile

FIG. 2Ais a diagram200illustrating an example of a DL frame structure.FIG. 2Bis a diagram230illustrating an example of channels within the DL frame structure.FIG. 2Cis a diagram250illustrating an example of an UL frame structure.FIG. 2Dis a diagram280illustrating an example of channels within the UL frame structure. Other wireless communication technologies may have a different frame structure and/or different channels. A frame (10 ms) may be divided into 10 equally sized subframes. Each subframe may include two consecutive time slots. A resource grid may be used to represent the two time slots, each time slot including one or more time concurrent resource blocks (RBs) (also referred to as physical RBs (PRBs)). The resource grid is divided into multiple resource elements (REs). For a normal cyclic prefix, an RB contains 12 consecutive subcarriers in the frequency domain and 7 consecutive symbols (for DL, OFDM symbols; for UL, SC-FDMA symbols) in the time domain, for a total of 84 REs. For an extended cyclic prefix, an RB contains 12 consecutive subcarriers in the frequency domain and 6 consecutive symbols in the time domain, for a total of 72 REs. The number of bits carried by each RE depends on the modulation scheme.

As illustrated inFIG. 2A, some of the REs carry DL reference (pilot) signals (DL-RS) for channel estimation at the UE. The DL-RS may include cell-specific reference signals (CRS) (also sometimes called common RS), UE-specific reference signals (UE-RS), and channel state information reference signals (CSI-RS).FIG. 2Aillustrates CRS for antenna ports0,1,2, and3(indicated as R0, R1, R2, and R3, respectively), UE-RS for antenna port5(indicated as R5), and CSI-RS for antenna port15(indicated as R).FIG. 2Billustrates an example of various channels within a DL subframe of a frame. The physical control format indicator channel (PCFICH) is within symbol0of slot0, and carries a control format indicator (CFI) that indicates whether the physical downlink control channel (PDCCH) occupies 1, 2, or 3 symbols (FIG. 2Billustrates a PDCCH that occupies 3 symbols). The PDCCH carries downlink control information (DCI) within one or more control channel elements (CCEs), each CCE including nine RE groups (REGs), each REG including four consecutive REs in an OFDM symbol. A UE may be configured with a UE-specific enhanced PDCCH (ePDCCH) that also carries DCI. The ePDCCH may have 2, 4, or 8 RB pairs (FIG. 2Bshows two RB pairs, each subset including one RB pair). The physical hybrid automatic repeat request (ARQ) (HARQ) indicator channel (PHICH) is also within symbol0of slot0and carries the HARQ indicator (HI) that indicates HARQ acknowledgement (ACK)/negative ACK (NACK) feedback based on the physical uplink shared channel (PUSCH). The primary synchronization channel (PSCH) may be within symbol6of slot0within subframes0and5of a frame.

The PSCH carries a primary synchronization signal (PSS) that is used by a UE to determine subframe/symbol timing and a physical layer identity. The secondary synchronization channel (SSCH) may be within symbol5of slot0within subframes0and5of a frame. The SSCH carries a secondary synchronization signal (SSS) that is used by a UE to determine a physical layer cell identity group number and radio frame timing. Based on the physical layer identity and the physical layer cell identity group number, the UE can determine a physical cell identifier (PCI). Based on the PCI, the UE can determine the locations of the aforementioned DL-RS. The physical broadcast channel (PBCH), which carries a master information block (MIB), may be logically grouped with the PSCH and SSCH to form a synchronization signal (SS) block. The MIB provides a number of RBs in the DL system bandwidth, a PHICH configuration, and a system frame number (SFN). The physical downlink shared channel (PDSCH) carries user data, broadcast system information not transmitted through the PBCH such as system information blocks (SIBs), and paging messages.

As illustrated inFIG. 2C, some of the REs carry demodulation reference signals (DM-RS) for channel estimation at the base station. The UE may additionally transmit sounding reference signals (SRS) in the last symbol of a subframe. The SRS may have a comb structure, and a UE may transmit SRS on one of the combs. The SRS may be used by a base station for channel quality estimation to enable frequency-dependent scheduling on the UL.FIG. 2Dillustrates an example of various channels within an UL subframe of a frame. A physical random access channel (PRACH) may be within one or more subframes within a frame based on the PRACH configuration. The PRACH may include six consecutive RB pairs within a subframe. The PRACH allows the UE to perform initial system access and achieve UL synchronization. A physical uplink control channel (PUCCH) may be located on edges of the UL system bandwidth. The PUCCH carries uplink control information (UCI), such as scheduling requests, a channel quality indicator (CQI), a precoding matrix indicator (PMI), a rank indicator (RI), and HARQ ACK/NACK feedback. The PUSCH carries data, and may additionally be used to carry a buffer status report (BSR), a power headroom report (PHR), and/or UCI.

Channel estimates derived by a channel estimator358from a reference signal or feedback transmitted by the base station310may be used by the TX processor368to select the appropriate coding and modulation schemes, and to facilitate spatial processing. The spatial streams generated by the TX processor368may be provided to different antenna352via separate transmitters354TX. Each transmitter354TX may modulate an RF carrier with a respective spatial stream for transmission. The UL transmission is processed at the base station310in a manner similar to that described in connection with the receiver function at the UE350. Each receiver318RX receives a signal through its respective antenna320. Each receiver318RX recovers information modulated onto an RF carrier and provides the information to a RX processor370.

New radio (NR) may refer to radios configured to operate according to a new air interface (e.g., other than Orthogonal Frequency Divisional Multiple Access (OFDMA)-based air interfaces) or fixed transport layer (e.g., other than Internet Protocol (IP)). NR may utilize OFDM with a cyclic prefix (CP) on the uplink and downlink and may include support for half-duplex operation using time division duplexing (TDD). NR may include Enhanced Mobile Broadband (eMBB) service targeting wide bandwidth (e.g. 80 MHz beyond), millimeter wave (mmW) targeting high carrier frequency (e.g. 60 GHz), massive MTC (mMTC) targeting non-backward compatible MTC techniques, and/or mission critical targeting ultra-reliable low latency communications (URLLC) service.

A single component carrier bandwidth of 100 MHZ may be supported. In one example, NR resource blocks (RBs) may span 12 sub-carriers with a sub-carrier bandwidth of 75 kHz over a 0.1 ms duration or a bandwidth of 15 kHz over a 1 ms duration. Each radio frame may consist of 10 or 50 subframes with a length of 10 ms. Each subframe may have a length of 0.2 ms. Each subframe may indicate a link direction (i.e., DL or UL) for data transmission and the link direction for each subframe may be dynamically switched. Each subframe may include DL/UL data as well as DL/UL control data. UL and DL subframes for NR may be as described in more detail below with respect toFIGS. 6 and 7.

FIG. 4illustrates an example logical architecture400of a distributed RAN, according to aspects of the present disclosure. A 5G access node406may include an access node controller (ANC)402. The ANC may be a central unit (CU) of the distributed RAN400. The backhaul interface to the next generation core network (NG-CN)404may terminate at the ANC. The backhaul interface to neighboring next generation access nodes (NG-ANs) may terminate at the ANC. The ANC may include one or more TRPs408(which may also be referred to as BSs, NR BSs, Node Bs, 5G NBs, APs, or some other term). As described above, a TRP may be used interchangeably with “cell.”

The local architecture of the distributed RAN400may be used to illustrate fronthaul definition. The architecture may be defined that support fronthauling solutions across different deployment types. For example, the architecture may be based on transmit network capabilities (e.g., bandwidth, latency, and/or jitter). The architecture may share features and/or components with LTE. According to aspects, the next generation AN (NG-AN)410may support dual connectivity with NR. The NG-AN may share a common fronthaul for LTE and NR.

The architecture may enable cooperation between and among TRPs408. For example, cooperation may be preset within a TRP and/or across TRPs via the ANC402. According to aspects, no inter-TRP interface may be needed/present.

According to aspects, a dynamic configuration of split logical functions may be present within the architecture of the distributed RAN400. The PDCP, RLC, MAC protocol may be adaptably placed at the ANC or TRP.

FIG. 5illustrates an example physical architecture of a distributed RAN500, according to aspects of the present disclosure. A centralized core network unit (C-CU)502may host core network functions. The C-CU may be centrally deployed. C-CU functionality may be offloaded (e.g., to advanced wireless services (AWS)), in an effort to handle peak capacity. A centralized RAN unit (C-RU)504may host one or more ANC functions. Optionally, the C-RU may host core network functions locally. The C-RU may have distributed deployment. The C-RU may be closer to the network edge. A distributed unit (DU)506may host one or more TRPs. The DU may be located at edges of the network with radio frequency (RF) functionality.

FIG. 6is a diagram600showing an example of a DL-centric subframe. The DL-centric subframe may include a control portion602. The control portion602may exist in the initial or beginning portion of the DL-centric subframe. The control portion602may include various scheduling information and/or control information corresponding to various portions of the DL-centric subframe. In some configurations, the control portion602may be a physical DL control channel (PDCCH), as indicated inFIG. 6. The DL-centric subframe may also include a DL data portion604. The DL data portion604may sometimes be referred to as the payload of the DL-centric subframe. The DL data portion604may include the communication resources utilized to communicate DL data from the scheduling entity (e.g., UE or BS) to the subordinate entity (e.g., UE). In some configurations, the DL data portion604may be a physical DL shared channel (PDSCH).

The DL-centric subframe may also include a common UL portion606. The common UL portion606may sometimes be referred to as an UL burst, a common UL burst, and/or various other suitable terms. The common UL portion606may include feedback information corresponding to various other portions of the DL-centric subframe. For example, the common UL portion606may include feedback information corresponding to the control portion602. Non-limiting examples of feedback information may include an ACK signal, a NACK signal, a HARQ indicator, and/or various other suitable types of information. The common UL portion606may include additional or alternative information, such as information pertaining to random access channel (RACH) procedures, scheduling requests (SRs), and various other suitable types of information.

As illustrated inFIG. 6, the end of the DL data portion604may be separated in time from the beginning of the common UL portion606. This time separation may sometimes be referred to as a gap, a guard period, a guard interval, and/or various other suitable terms. This separation provides time for the switch-over from DL communication (e.g., reception operation by the subordinate entity (e.g., UE)) to UL communication (e.g., transmission by the subordinate entity (e.g., UE)). One of ordinary skill in the art will understand that the foregoing is merely one example of a DL-centric subframe and alternative structures having similar features may exist without necessarily deviating from the aspects described herein.

FIG. 7is a diagram700showing an example of an UL-centric subframe. The UL-centric subframe may include a control portion702. The control portion702may exist in the initial or beginning portion of the UL-centric subframe. The control portion702inFIG. 7may be similar to the control portion602described above with reference toFIG. 6. The UL-centric subframe may also include an UL data portion704. The UL data portion704may sometimes be referred to as the pay load of the UL-centric subframe. The UL portion may refer to the communication resources utilized to communicate UL data from the subordinate entity (e.g., UE) to the scheduling entity (e.g., UE or BS). In some configurations, the control portion702may be a physical DL control channel (PDCCH).

As illustrated inFIG. 7, the end of the control portion702may be separated in time from the beginning of the UL data portion704. This time separation may sometimes be referred to as a gap, guard period, guard interval, and/or various other suitable terms. This separation provides time for the switch-over from DL communication (e.g., reception operation by the scheduling entity) to UL communication (e.g., transmission by the scheduling entity). The UL-centric subframe may also include a common UL portion706. The common UL portion706inFIG. 7may be similar to the common UL portion706described above with reference toFIG. 7. The common UL portion706may additionally or alternatively include information pertaining to channel quality indicator (CQI), sounding reference signals (SRSs), and various other suitable types of information. One of ordinary skill in the art will understand that the foregoing is merely one example of an UL-centric subframe and alternative structures having similar features may exist without necessarily deviating from the aspects described herein.

Embodiments are disclosed below for using LDPC codes in cellular and other communication systems. LDPC codes are linear block codes, which may be constructed using a sparse bipartite graph.

LDPC codes are defined by a sparse parity-check matrix. Consider a (N, K) LDPC code, where K is the information block length and N is coded block length. Its parity check matrix is of size (N−K)*N, whose majority elements are 0. As a linear block code, the encoding of an LDPC code is based on its generator matrix. The decoding of LDPC codes is based on a belief propagation algorithm or a sum-product decoding.

The design of a good LDPC code relies on the design of its parity check matrix. One type of LDPC code constructed in a deterministic and systematic way is called a quasi-cyclic LDPC code (QC-LDPC). See IEEE Std 802.1 1-2012, “Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications” for a standardized implementation of QC-LDPC codes A QC-LDPC code may be uniquely defined by its base graph B.

LDPC codes are adopted in several standards and used in many communication systems, for example, the DVB-S2 standard for satellite transmission of digital television, ITU-T G.hn standard, 10GBase-T Ethernet system, and the Wi-Fi 802.11 standard. In 5G, there are a few use cases which make LDPC codes of particular use. For example, there is a use case for enhanced massive mobile broadband (eMBB) communications.

Generally, a QC-LDPC matrix can be described by its equivalent bipartite graph

(“Tanner graph”), wherein each edge of the Tanner graph connects one variable node of a plurality of variable nodes (which form the first set of the bipartite graph) to one check node of a plurality of check nodes (which form the second set of the bipartite graph). A well-known construction of LDPC codes is based on protographs, also referred to as base graphs or projected graphs. In such constructions, a bipartite base graph G is copied N times and for each edge e of G, a permutation is applied to the N copies of e to interconnect the N copies of G. The resulting graph, called the N-cover or the N-lifting of G, is then used as the Tanner graph of the LDPC code. If the permutations are cyclic, the resulting LDPC code is called quasi-cyclic (QC).

QC LDPC codes are attractive due to their relatively simple implementation and analysis. For example, a QC-LDPC matrix of r rows and n columns can be represented by its equivalent bipartite graph with r check nodes and n variable nodes which has edges between the check nodes and the variable nodes if there are corresponding “1s” in the QC-LDPC matrix (cf. R. Tanner, “A Recursive Approach to Low Complexity Codes”, IEEE TRANSACTIONS IN INFORMATION THEORY, Volume 27, Issue 5, Pages 533-547, September 1981). Thus, the variable nodes represent code-word bits and the check nodes represent parity-check equations.

In certain configurations, different types of base graphs could be used for QC LDPC codes depending on size of selected information blocks and code rates (CRs), for example. The CR is defined as the number of information bits divided by the number of coded bits.

FIG. 8is a diagram illustrating a technique utilized by a base station (e.g., the base station102) or a UE (e.g., the UE104) to generate a parity check matrix (PCM). An exemplary base graph802defines a basic structure of the parity check matrix to be generated by the base station or the UE. In this example, the base graph802has 8 columns. Further, in the example, the base graph802has an information region803-1and a parity region803-2. In this example, the information region803-1contains the first four columns and the parity region803-2contains the rest of the columns. In this technique, the base station and/or the UE, when generating the PCM, select a region of the base graph802, and then replaces every “1” in the selected region with a circular permutation matrix (CPM) of size Z×Z (e.g., 8×8) and every “0” in the selected region with a Z×Z matrix of all zeros (e.g., elements830), Z being a lifting factor. Each CPM is an identity matrix with rows cyclically shifted by an amount as described below.FIG. 8shows exemplary CPMs808,810.

The rows of a parity check matrix812, generated as described below, are the coefficients of the parity check equations. That is, they show how linear combinations of certain digits (components) of each codeword equal zero. For example, the parity check matrix

H=[00111100]
compactly represents the parity check equations,
c3+c4=0
c1+c2=0that must be satisfied for c1c2c3c4to be a codeword.

More specifically, to generate the PCM, the UE or base station initially replaces “1”s in the base graph802with an identify matrix of size Z. Further, the UE or base station cyclically shifts elements of the identity matrix based on a corresponding shift coefficients table806. A particular positive number in the shift coefficients table806indicates the corresponding identity matrix in the base graph802should be shifted to the right the particular number of times. A particular negative number in the shift coefficients table806indicates the corresponding identity matrix in the base graph802should be shifted to the left the particular number of times. For example, a shift coefficient807-1in the shift coefficients table806corresponds to an element804-1in the base graph802. The number “0” of the shift coefficient807-1indicates that the identity matrix is not shifted. Accordingly, the element804-1is replaced by the CPM808in the generated parity check matrix812. A shift coefficient807-2in the shift coefficients table806corresponds to an element804-2in the base graph802. The number “2” of the shift coefficient807-2indicates that the identity matrix is shifted to the right twice. Accordingly, the element804-1is replaced by the CPM810in the generated parity check matrix812.

The parity check matrix812has two portions. A first portion816(corresponding to the information region803-1of the base graph802) represents information columns portion and a second portion818(corresponding to the parity region803-2of the base graph802) represents a parity columns portion. Using a technique described below, the UE or base station can determine a Kb number. Based on the Kb number, the UE or base station use the entire or only a selected portion814of the base graph802to generate the parity check matrix812. The selected portion814is formed by two parts with one part including a subset of the information columns of the parity check matrix812and a second part including a subset of parity columns of the parity check matrix812. In the illustrated example, the first portion816of the parity check matrix812has a 4×4 size of the information columns and the second portion818has the same size 4×4 of parity columns. However, the submatrix814uses only Kb number (e.g., 3) information bits columns820and Kp number (e.g., 2) parity columns821. The Kp number is determined based on the Kb number and the code rate. For example, if Kb number is 3 and code rate is 2/3 then Kp number is 3*2/3 (i.e., 2). The parity part is a square matrix having a size of Kp by Kp. In this example, two parts of the sub-matrix814have sizes 3×2 and 2×2 corresponding to information part and parity part, respectively. In particular, the UE or base station selects a submatrix that has a size of Kp by Kb and that includes the last information element804-3on the first row from the information region803-1of the base graph802to form the first portion816of the parity check matrix812. The UE or base station selects a square submatrix that has a size of Kp by Kp and that includes the first parity element804-4on the first row from the parity region803-2of the base graph802to form the second portion818of the parity check matrix812. Kp is a number that can be determined based on the number Kb and an adopted code rate.

A code block size (CBS) of a LDPC code indicates the number of information bits in the LDPC code. Thus, CBS equals to the number of columns in the information region of the submatrix814. As discussed above, each row of the information region of the submatrix814contains Kb number of CPMs. Each CPM is a Z by Z matrix. Therefore, CBS can be represented by the following equation (1):
CBS=Kb*Z(1).

FIG. 8shows that the information region of the submatrix814has Kb number (e.g., 3) information bits columns820.

Z is also referred to as a lifting factor. In general, LDPC code performance is better if Kb or Z is larger. Larger Kb provides a higher information column freedom, which may lead to a better performance. Larger Z provides a higher shift coefficients matrix freedom, which may lead to a better performance.

There is a trade-off between the number Kb and the lifting factor Z selection. The effect of increased size of information bits columns (Kb) and/or higher lifting factor Z is highly non-linear. Benefits of the Kb size and lifting factor Z saturate differently. Whether Kb or Z dictates the performance in general depends on CBS. Accordingly, selections of these factors can be rebalanced to improve performance of QC LDPC codes. QC LDPC codes performance is typically better for larger CBS since it provides higher flexibility to both information columns size Kb and lifting factor Z. Larger CBS provides the benefit of high degree of randomness with respect to inter-node information passing.

As noted above, for initial transmission of a transport block with a particular code rate and for subsequent re-transmission of the same transport block, each code block of the transport block is encoded with either LDPC base graph1or base graph2according to certain rules. Typically, the LDPC base graph 1 covers 8/9˜2/3 CR and small to larger block sizes, while the LDPC base graph2covers 2/3˜1/5 CR and very small to medium block sizes. LDPC base graph1is a matrix having 46 rows with row indices i=0, 1, 2, . . . , 45 and 68 columns with column indices j=0, 1, 2, . . . , 67. LDPC base graph2is a matrix having 42 rows with row indices i=0, 1, 2, . . . , 41 and 52 columns with column indices j=0, 1, 2, . . . , 51. The elements with row and column indices given in Table 1 (for LDPC base graph1) and Table 2 (for LDPC base graph2) are of value 1, and all other elements are of value 0.

A UE or a base station can be configured with rules for selection of base graph1or2. In one configuration, if CBS≤292, or if CBS≤3824 and CR≤0.67, or if CR≤0.25, then LDPC base graph2should be used. Otherwise, LDPC base graph1is used.

In one aspect, when the LDPC base graph2is used in combination with the selection of Kb being 10, lifting factor Z may limit performance of QC LDPC codes. Various configurations described below contemplate different rules to address this problem and further enhance QC LDPC code performance.

In some configurations, selection of LDPC base graph1or2may be performed based on CBS and CR values. Typically, the LDPC base graph1performs better than the base graph2with higher CR values and larger CBS values. The LDPC base graph2performs better than the base graph1with lower CR values and smaller CBS values. In certain configurations, the first base graph (LDPC base graph1) can be used for the initial transmission and the subsequent re-transmissions of the same transport block if: 1) CBS>3840 or if 2) CR value of the initial transmission>0.67. In certain configurations, the second base graph (LDPC base graph2) can be used for the initial transmission and the subsequent re-transmissions of the same transport block if: 1) CBS≤3840 and if 2) CR value of the initial transmission≤0.67.

Further, once a particular base graph is selected, the below technique may be used to determine an optimal Kb number. For example, when CBS ranges between 40 and 656, the UE or the base station may be configured to use a Kb number in the range of 5 to 10. An optimal Kb number can be determined when a sum of absolute SNR values where a Block Error Rate (BLER) at a receiver is 10−2and where the BLER is 104is minimum with all candidate CRs and the given Kb value. For instance, a particular Kb number (e.g. Kb=5) from the candidate Kb numbers may be selected for a target CBS (e.g., CBS=40) to generate a cumulative sum of SNR measurements at where the BLER is 10−4and where the BLER is 104for all the candidate CR values. In one configuration, the CR values used for the determination of an optimal Kb number may include ⅕, ⅓, ⅖, ½, ⅔. As such, the cumulative sum of SNR measurements for all the candidate CR values at Kb number 5 is determined for the target CBS. Subsequently, another Kb number (e.g., Kb number=6) from the candidate Kb numbers may be selected, and the corresponding cumulative sum of SNR values may be calculated. This process is repeated for the entire range of candidate Kb numbers (e.g., 5 to 10). An optimal Kb number can be determined as the Kb number that produces the lowest cumulative sum of SNR measurements as described above. This selection process of an optimal Kb number can be described using the following Equation (2):

In one example, optimal Kb numbers for LDPC base graph2for different CBSs are determined based on the Equation (2). In particular, if the CBS is greater than 640, the optimal Kb number is 10. If the CBS is not greater than 640 and is greater than 560, the optimal Kb number is 9. If the CBS is not greater than 560 and is greater than 192, the optimal Kb number is 8. If the CBS is not greater than 192, the optimal Kb number is 6.

FIG. 9is a flow chart900of a method (process) for using improved QC-LDPC codes. The method may be performed by a UE (e.g., the UE104, the UE350, the apparatus1002/1002′) or by a base station (e.g., base station102, base station310, the apparatus1002/1002′). It is noteworthy that, although the description below is provided in the context of UE(s), the description below is also applicable to base station(s). At operation902, the UE or base station determines a CBS of information bits contained in a codeword of LDPC coding. As noted above, each LDPC codeword includes both an information portion and a parity portion. Thus, at operation902, the UE OR BASE STATION determines the length of the information portion. At operation904, the UE OR BASE STATION compares the determined CBS with at least one predefined threshold as explained below. This comparison is performed in order to determine an optimal Kb number.

At operation906, the UE OR BASE STATION determines an optimal Kb number for LDPC base graph2using the following rules:If CBS>640, use Kb=10Else if 640≥CBS>560, use Kb=9Else if 560≥CBS>192, use Kb=8Else if CBS≤192, use Kb=6.

At operation907, the UE OR BASE STATION determines a Kp number. The Kp number is determined based on the Kb number and the code rate.

At operation908, the UE OR BASE STATION generates a parity check matrix (e.g., the parity check matrix812) of the LDPC coding using the determined optimal Kb number. As noted above, the parity check matrix812has two portions. A first portion816represent information bits portion and a second portion818represents a parity bits portion. The parity check matrix812may also include at least one sub-matrix814.

At operation910, the UE OR BASE STATION operates an LDPC encoder (e.g., LDPC encoder192shown inFIG. 1) or an LDPC decoder (e.g., LDPC decoder194) based on the parity check matrix (e.g., the parity check matrix812). In other words, LDPC coding/decoding is carried out by special purpose logic within LDPC encoder/decoder circuitry. This special purpose logic utilizes the generated parity check matrix.

In certain configurations, the at least one threshold includes a first threshold of 640 bits and the Kb number is determined to be 10 when the CBS is greater than the first threshold.

In certain configurations, the at least one threshold includes a first threshold of 640 bits and the second threshold of 560 bits and the Kb number is determined to be 9 when the CBS is less than or equal to the first threshold and is greater than the second threshold.

In certain configurations, at least one threshold includes a first threshold of 560 bits and the second threshold of 192 bits and the Kb number is determined to be 8 when the CBS is less than or equal to the first threshold and is greater than the second threshold.

In certain configurations, the at least one threshold includes a first threshold of 192 bits and the Kb number is determined to be 6 when the CBS is less than or equal to the first threshold.

In certain configurations, the circular permutation matrices are located at locations of the first matrix as indicated by an adopted base graph.

In certain configurations, a first base graph or a second base graph is selected to be the adopted base graph based on at least one the CBS and a code rate of an initial transmission.

In certain configurations, the second base graph is selected when the CBS is less than or equal to 3840 bits and the code rate is less than or equal to 0.67.

FIG. 10is a conceptual data flow diagram1000illustrating the data flow between different components/means in an exemplary apparatus1002. The apparatus1002may be either a UE or a base station. The apparatus1002includes a reception component1004, a PCM generation component1006, an encoder1012, a decoder1008, a transmission component1010and a data application1014. If the apparatus1002is a UE then the reception component1004may receive signals1062from a base station1050and the transmission component1010may send signals1064to the base station1050. If the apparatus1002is a base station then the reception component1004may receive signals1062from a UE1054and the transmission component1010may send signals1064to the UE1054.

In certain configurations, the PCM generation component1006is pre-configured to determine a CBS of information bits contained in a codeword of LDPC coding. In other words, the PCM generation component1006is pre-configured to determine the length of the information portion of a LDPC codeword. The PCM generation component1006compares the determined CBS with at least one threshold.

Based on a result of the performed comparison, the PCM generation component1006determines a Kb number. When the at least one threshold includes only one threshold of 640 bits and when the CBS is greater than 640 bits, the PCM generation component1006determines the Kb number to be 10. When the CBS is compared to two different thresholds of 560 bits and 640 bits and when the CBS is greater than 560 bits and the CBS is less than or equal to 640 bits, the PCM generation component1006determines the KB number to be 9. When the CBS is compared to two different thresholds of 192 bits and 560 bits and when the CBS is greater than 192 bits and the CBS is less than or equal to 560 bits, the PCM generation component1006determines the KB number to be 8. When the at least one threshold includes only one threshold of 192 bits and when the CBS is less than or equal to 192 bits, the PCM generation component1006determines the Kb number to be 6.

In certain configurations, the PCM generation component1006selects either a first base graph or a second base graph to be the adopted base graph based on at least one the determined CBS and a code rate of an initial transmission. When the CBS is less than or equal to 3840 and the code rate is less than or equal to 0.67, the PCM generation component1006selects the second base graph to be the adopted base graph. The adopted base graph defines a structure of the parity check matrix. The PCM generation component1006generates a parity check matrix1020of the LDPC coding using the adopted base graph and the determined Kb number. Based on the determined Kb number, the PCM generation component1006uses either the entire or only a selected portion of the adopted base graph to generate the parity check matrix. The selected portion is formed by two parts with one part including a subset of the information columns of the parity check matrix and a second part including a subset of parity columns of the parity check matrix. The number of information columns used by the selected portion is the determined Kb number and the number of parity columns used by the selected portion is a determined Kp number. An information portion of the parity check matrix is formed by M number of square matrices. M is equal to Kp*Kb. A total number of columns in the Kb number of square matrices is equal to a total number of bits of the CBS. One or more of the M number of square matrices are circular permutation matrices. The circular permutation matrices are located at locations of the information portion of the parity check matrix as indicated by the adopted base graph.

In one aspect, the encoder1012receives data bits1022from a data application1014and encodes the data bits1022using a generator matrix derived from the parity check matrix1020generated by the PCM generation component1006to generate a LDPC code1024. In certain configurations, the encoder1012sends the generated LDPC code1024to the transmission component1010. In one aspect, the decoder1008decodes a LDPC code1025received from the reception component1004to generate data bits1027. In certain configurations, the decoder1008may send the generated data bits1027to the data application1014. In various configurations, the data application1014may generally be any application that facilitates the operations of an organization (or multiple affiliated organizations), and can include, without limitation, mail server applications, file server applications, mail client applications, database applications, word processing applications, spreadsheet applications, financial applications, presentation applications, browser applications, mobile applications, entertainment applications, and so on.

FIG. 11is a diagram1100illustrating an example of a hardware implementation for an apparatus1002′ employing a processing system1114. The apparatus1002′ may be a UE or a base station. The processing system1114may be implemented with a bus architecture, represented generally by a bus1124. The bus1124may include any number of interconnecting buses and bridges depending on the specific application of the processing system1114and the overall design constraints. The bus1124links together various circuits including one or more processors and/or hardware components, represented by one or more processors1104, the reception component1004, the PCM generation component1006, the decoder1008, the transmission component1010, and the encoder1012, and a computer-readable medium/memory1106. The bus1124may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, etc.

The processing system1114may be coupled to a transceiver1110, which may be one or more of the transceivers354if the apparatus1102′ is a UE or one or more transceivers318if the apparatus1102′ is a base station. The transceiver1110is coupled to one or more antennas1120, which may be the communication antennas352if the apparatus1102′ is a UE or the communication antennas320if the apparatus1102′ is a base station.

The transceiver1110provides a means for communicating with various other apparatus over a transmission medium. The transceiver1110receives a signal from the one or more antennas1120, extracts information from the received signal, and provides the extracted information to the processing system1114, specifically the reception component1004. In addition, the transceiver1110receives information from the processing system1114, specifically the transmission component1010, and based on the received information, generates a signal to be applied to the one or more antennas1120.

The processing system1114includes one or more processors1104coupled to a computer-readable medium/memory1106. The one or more processors1104are responsible for general processing, including the execution of software stored on the computer-readable medium/memory1106. The software, when executed by the one or more processors1104, causes the processing system1114to perform the various functions described supra for any particular apparatus. The computer-readable medium/memory1106may also be used for storing data that is manipulated by the one or more processors1104when executing software. The processing system1114further includes at least one of the reception component1004, the PCM generation component1006, the decoder1008, the transmission component1010, and the encoder1012. The components may be software components running in the one or more processors1104, resident/stored in the computer readable medium/memory1106, one or more hardware components coupled to the one or more processors1104, or some combination thereof. In one configuration, the processing system1114may be a component of the UE350and may include the memory360and/or at least one of the TX processor368, the RX processor356, and the communication processor359. In another configuration, the processing system1114may be a component of the base station310and may include the memory376and/or at least one of the TX processor316, the RX processor370, and the communication processor375

In one configuration, the apparatus1002/apparatus1002′ for wireless communication includes means for performing each of the operations ofFIG. 9. The aforementioned means may be one or more of the aforementioned components of the apparatus1002and/or the processing system1114of the apparatus1002′ configured to perform the functions recited by the aforementioned means.

As described supra, the processing system1114may include the TX Processor368, the RX Processor356, and the communication processor359or may include the TX processor316, the RX processor370, and the communication processor375. As such, in one configuration, the aforementioned means may be the TX Processor368, the RX Processor356, and the communication processor359configured to perform the functions recited by the aforementioned means. In another configuration, the aforementioned means may be the TX Processor316, the RX Processor370, and the communication processor375configured to perform the functions recited by the aforementioned means. It is understood that the specific order or hierarchy of blocks in the processes/flowcharts disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of blocks in the processes/ flowcharts may be rearranged. Further, some blocks may be combined or omitted. The accompanying method claims present elements of the various blocks in a sample order, and are not meant to be limited to the specific order or hierarchy presented.