METHOD FOR SELECTING LDPC BASE CODE IN MULTIPLE LDPC CODES AND APPARATUS THEREFOR
20210167800 · 2021-06-03
Inventors
- Jongwoong Shin (Seoul, KR)
- Bonghoe Kim (Seoul, KR)
- Jinwoo Kim (Seoul, KR)
- Kwangseok Noh (Seoul, KR)
- Ilmu Byun (Seoul, KR)
Cpc classification
H03M13/1148
ELECTRICITY
H03M13/116
ELECTRICITY
H03M13/1188
ELECTRICITY
H04L1/0043
ELECTRICITY
H03M13/1185
ELECTRICITY
International classification
Abstract
A method of encoding a quasi-cyclic low-density parity-check (QC LDPC) code supporting multiple base codes includes selecting a base code for generating a parity check matrix from among a first base code and a second base code, selecting a lifting value for generating the parity check matrix from among a plurality of lifting values, and generating the parity check matrix using the selected base code and the selected lifting value, wherein the base code is determined based on a code block size and a code rate, and the lifting value is determined based on a parameter of the base code and the code block size.
Claims
1-11. (canceled)
12. A method for encoding, by a transmitting device, information of a size L using a low density parity check (LDPC) code in a wireless communication system, the method comprising: encoding the information based on either a long LDPC base code or a short LDPC base code to generate encoded bits with a code rate R; and transmitting the encoded bits, wherein the short LDPC base code is supportable of at least code rates smaller than or equal to R2_b and information sizes smaller than or equal to L2_b, and the long LDPC base code is supportable of at least code rates larger than R1_a and information sizes larger than L1_a, where L1_a<L2_b, and R1_a<R2_b, and wherein the information is encoded based on the short LDPC base code if R1_a<R<R2_b, and L1_a<L<L2_b.
13. The method according to claim 12, wherein each element of the long and short LDPC base codes represents Z*Z zero matrix or a circular shift matrix of Z*Z identity matrix.
14. The method according to claim 13, wherein Z is a minimum value satisfying Z*Kb≥K among candidates Z values, where K is a number of bits in a code block associated with the information, and Kb is a number of columns for the code block in a corresponding LDPC base code.
15. The method according to claim 12, wherein the long LDPC base code and the short LDPC base code consist of N1 columns and N2 columns, respectively, where N1 is larger than N2.
16. A method for decoding, by a receiving device, encoded information using a low density parity check (LDPC) code in a wireless communication system, the method comprising: receiving encoded bits with a code rate R; and decoding the encoded bits based on either a long LDPC base code or a short LDPC base code to generate information of a size L, wherein the short LDPC base code is supportable of at least code rates smaller than or equal to R2_b and information sizes smaller than or equal to L2_b, and the long LDPC base code is supportable of at least code rates larger than R1_a and information sizes larger than L1_a, where L1_a<L2_b, and R1_a<R2_b, and wherein the encoded bits are decoded based on the short LDPC base code if R1_a<R<R2_b, and L1_a<L<L2_b.
17. The method according to claim 16, wherein each element of the long and short LDPC base codes represents Z*Z zero matrix or a circular shift matrix of Z*Z identity matrix.
18. The method according to claim 17, wherein Z is a minimum value satisfying Z*Kb≥K among candidates Z values, where K is a number of bits in a code block associated with the information, and Kb is a number of columns for the code block in a corresponding LDPC base code.
19. The method according to claim 16, wherein the long LDPC base code and the short LDPC base code consist of N1 columns and N2 columns, respectively, where N1 is larger than N2.
20. A transmitting device for encoding information of a size L using a low density parity check (LDPC) code in a wireless communication system, the transmitting device comprising: an encoder configured to encode the information based on either a long LDPC base code or a short LDPC base code to generate encoded bits with a code rate R; and a transmitting module configured to transmit the encoded bits, wherein the short LDPC base code is supportable of at least code rates smaller than or equal to R2 b and information sizes smaller than or equal to L2_b, and the long LDPC base code is supportable of at least code rates larger than R1_a and information sizes larger than L1_a, where L1_a<L2_b, and R1_a<R2_b, and wherein the information is encoded based on the short LDPC base code if R1_a<R<R2_b, and L1_a<L<L2_b.
21. The transmitting device according to claim 20, wherein each element of the long and short LDPC base codes represents Z*Z zero matrix or a circular shift matrix of Z*Z identity matrix.
22. The transmitting device according to claim 21, wherein Z is a minimum value satisfying Z*Kb≥K among candidates Z values, where K is a number of bits in a code block associated with the information, and Kb is a number of columns for the code block in a corresponding LDPC base code.
23. The transmitting device according to claim 20, wherein the long LDPC base code and the short LDPC base code consist of N1 columns and N2 columns, respectively, where N1 is larger than N2.
24. A receiving device for decoding encoded information using a low density parity check (LDPC) code in a wireless communication system, the receiving device comprising: a receiving module configured to receive encoded bits with a code rate R; and a decoder configured to decode the encoded bits based on either a long LDPC base code or a short LDPC base code to generate information of a size L, wherein the short LDPC base code is supportable of at least code rates smaller than or equal to R2_b and information sizes smaller than or equal to L2_b, and the long LDPC base code is supportable of at least code rates larger than R1_a and information sizes larger than L1_a, where L1_a<L2_b, and R1_a<R2_b, and wherein the encoded bits are decoded based on the short LDPC base code if R1_a<R<R2_b, and L1_a<L<L2_b.
25. The receiving device according to claim 24, wherein each element of the long and short LDPC base codes represents Z*Z zero matrix or a circular shift matrix of Z*Z identity matrix.
26. The receiving device according to claim 25, wherein Z is a minimum value satisfying Z*Kb≥K among candidates Z values, where K is a number of bits in a code block associated with the information, and Kb is a number of columns for the code block in a corresponding LDPC base code.
27. The receiving device according to claim 24, wherein the long LDPC base code and the short LDPC base code consist of N1 columns and N2 columns, respectively, where N1 is larger than N2.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the invention.
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
MODE FOR CARRYING OUT THE INVENTION
[0041] Reference will now be made in detail to the exemplary embodiments of the present invention, examples of which are illustrated in the accompanying drawings. The detailed description set forth below in connection with the appended drawings is intended as a description of exemplary embodiments and is not intended to represent the only embodiments through which the concepts explained in these embodiments can be practiced. [41] The detailed description includes details for the purpose of providing an understanding of the present invention. However, it will be apparent to those skilled in the art that these teachings may be implemented and practiced without these specific details. In some instances, well-known structures and devices are omitted in order to avoid obscuring the concepts of the present invention and the important functions of the structures and devices are shown in block diagram form.
[0042] The following technology may be applied to a variety of wireless access systems using code division multiple access (CDMA), frequency division multiple access (FDMA), time division multiple access (TDMA), orthogonal frequency division multiple access (OFDMA), single carrier frequency division multiple access (SC-FDMA), and the like. CDMA may be embodied through radio technology such as universal terrestrial radio access (UTRA) or CDMA2000. TDMA may be embodied through radio technology such as global system for mobile communications (GSM)/general packet radio service (GPRS)/enhanced data rates for GSM evolution (EDGE). OFDMA may be embodied through radio technology such as institute of electrical and electronics engineers (IEEE) 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802-20, and evolved UTRA (E-UTRA). UTRA is a part of a universal mobile telecommunications system (UMTS). 3rd generation partnership project (3GPP) long term evolution (LTE) is a part of evolved UMTS (E-UMTS) using E-UTRA. 3GPP LTE employs OFDMA in downlink and SC-FDMA in uplink. LTE-advanced (LTE-A) is an evolved version of 3GPP LTE.
[0043] For clarity of description, the following description focuses on the 3GPP LTE/LTE-A system. However, the technical features of the present invention are not limited thereto. Specific terms used in the following description are provided to aid in understanding the present invention. These specific terms may be replaced with other terms within the scope and spirit of the present invention.
[0044]
[0045] The encoding procedure as illustrated in
[0046] In the example of
[0047] A decoding procedure may be performed in a reverse order of the encoding procedure of
[0048]
[0049] For example, the size of an input symbol may be different from the size of a TB from a media access control (MAC) layer. If the size of the TB is greater than a maximum size of the input symbol of the turbo code, the TB may be segmented into a plurality of code blocks (CBs).
[0050] According to standard of the LTE communication system, the size of the CB may be equal to a value obtained by subtracting the CRC bits from 6144 bits. The input symbol of the turbo code may be defined as data including a CB and a CRC or data including a TB (e.g., the size of the TB is less than 6144 bits) and a CRC. The CRC bits are significantly less than 6144 bits (e.g., the CRC bits are a maximum of 24 bits). Therefore, in the following description, a CB may refer to a CB itself or a CB and corresponding CRC bits and a TB may refer to a TB itself or a TB and corresponding CRC bits, unless defined otherwise).
[0051]
[0052]
[0053] CB CRCs 204 are added to the respective CBs 203. The CB CRCs 204 may be used to confirm the CBs 203 by the receiver. The CBs 203 and the CB CRCs 204 may be encoded through respective encoders 205 and respective modulators 205.
[0054]
[0055] An RSC encoder 300 of
[0056] The RSC encoder 300 may be configured by feeding back an encoded output to an input of a non-recursive, non-systematic convolutional encoder. In the embodiment of
[0057]
[0058] A coding scheme of an LTE turbo encoder 400 uses a parallel concatenated convolutional code (PCCC) implemented through two 8-state constituent encoders 410 and 420 and one turbo code internal interleaver 430.
[0059] In
[0060] In
[0061] The turbo code internal interleaver 430 may reduce an effect of a burst error which may be generated during signal transmission on a radio channel. For example, the turbo code internal interleaver 430 may be a quadratic polynomial permutation (QPP) interleaver.
[0062] A turbo code is a high-performance forward error correction (FEC) code used in the LTE communication system. For example, a data block coded by the turbo code may include three subblocks. One subblock may correspond to m-bit payload data. Another subblock may include n/2 parity bits for a payload, calculated using an RSC code. In addition, the other subblock may include n/2 parity bits for permutation of payload data, calculated using the RSC code. For example, the above permutation may be performed by the interleaver. Accordingly, the two different subblocks of parity bits may constitute one block together with the subblock for the payload. As an example, when m is equal to n/2, one block has a code rate of 1/3.
[0063] In the first constituent encoder 410, a procedure in which the input c.sub.k reaches the encoded bit z.sub.k may be divided into two paths. The two paths include a first path connected to an output stage from an input stage without feedback and a second path fed back from the input stage back to the input stage.
[0064] On the first path, the input ck, the input ck passing through the delayer 411, and the input ck passing through the delayers 411, 412, and 413 are supplied to the output stage. A relationship between the input stage and the output stage for the first path may be expressed as a polynomial. The polynomial for the first path is referred to as a forward generator polynomial and may be expressed as gl of the following equation indicated below.
g1(D)=1+D+D.sup.3 [Equation 1]
[0065] Meanwhile, on the second path, the input c.sub.k, the input c.sub.k passing through the delayers 411 and 142, and the input c.sub.k passing through the delayers 411, 412, and 413 are fed back to the input stage. A polynomial for the second path is referred to as a recursive generator polynomial and may be expressed as g0 of the following equation indicated below.
g0(D)=1+D.sup.2+D.sup.3 [Equation 2]
[0066] In Equations 1 and 2, “+” denotes exclusive OR (XOR) and 1 represents that an input is subjected to delay zero times. In addition, D.sup.n represents that an input is subjected to delay n times.
[0067]
[0068]
[0069] The trellis is a state machine illustrating state transition of an encoder allowable two states. A convolutional encoder such as the RSC encoder may perform encoding according to a trellis diagram. A codeword encoded by the RSC encoder may be decoded according to an algorithm based on a trellis structure. For example, a Viterbi or Bahl, Cocke, Jelinek and Raviv (BCJR) algorithm may be used.
[0070]
[0071] In
[0072] In
[0073] The tail bits have a relatively short length as compared with the length of input data. As described above, since the length of the codeword is associated with the length of the tail bits, if the length of the codeword is limited, code rate loss may occur due to the tail bits. However, although code rate loss is generated due to the tail bits, trellis termination using the tail bits is widely used because of low complexity of calculation and excellent error correction performance.
[0074] Puncturing is a scheme of puncturing a part of codewords. Through puncturing, since a part of codewords is punctured, partial codewords are not transmitted. For example, puncturing may be used to reduce code rate loss caused by addition of the tail bits. In this case, a receiver may perform decoding using a trellis corresponding to the sum of the length k of the input data and the length t of the tail bits. That is, the receiver may perform decoding under the assumption that the receiver has received codewords which are not punctured. In this case, the receiver may regard a branch from a node corresponding to a punctured bit (i.e., a bit which is not transmitted by a transmitter) as having no input value. That is, it is assumed that the input data for branches of a corresponding node is 0 or 1 with the same possibility.
[0075] As described above in relation to
[0076] If the size of a TB is 6144 bits, the size of the CRC may be a maximum of 24 bits. Accordingly, the other bits except for the CRC bits may be determined as the size of the CB.
[0077] The receiver may perform decoding with respect to each CB. Thereafter, the receiver may configure the TB from CBs and determine whether decoding has been successfully performed by checking the CRC for the TB. In a current LTE system, a CB CRC is used for early decoding termination. For example, if a CRC for one CB fails, the receiver may not decode the other CBs and transmit a negative acknowledgement (NACK) to the transmitter.
[0078] Upon receiving NACK, the transmitter may retransmit at least a part of transmission data. For example, the transmitter may retransmit a TB or one or more CBs. As an example, when the transmitter retransmits all of the TB, radio resources for retransmission may be excessively consumed. In addition, for example, when the receiver generates NACK due to failure of a CB CRC, the receiver may transmit information about a CB (e.g., an index of a CB) in which CRC failure has occurred to the transmitter. The transmitter may increase the efficiency of radio resources by transmitting only the CB in which CRC failure has occurred using the information about the CB. However, if the number of CBs increases, the amount of data for feeding back the information about the CBs (e.g., indexes of the CBs) increases.
[0079] In the LTE communication system, the receiver may inform the transmitter through an ACK/NACK signal whether data has been successfully received. In the case of frequency division duplex (FDD), ACK/NACK for data received in an i-th subframe is transmitted in an (i+4)-th subframe. If NACK is received in the (i+4)-th subframe, retransmission may be performed in an (i+8)-th subframe. This is to consider a time for processing the TB and a time for generating ACK/NACK because channel code processing for processing the TB consumes much time. In the case of time division duplex (TDD), ACK/NACK and retransmission subframes may be determined based on a time for processing the TB, a time for generating ACK/NACK, and uplink subframe allocation (e.g., TDD uplink/downlink configuration). In addition, ACK/NACK bundling and multiplexing may be used.
[0080] As described above, the turbo code shows restricted improvement in an error rate if an SNR exceeds a predetermined value. As an alternative to the turbo code, a low-density parity-check (LDPC) code has been proposed. The LDPC code is a linear block code and is used in IEEE 802.11n and 802.11ac and digital video broadcasting (DVB). The LDPC code may include a generation matrix and a parity check matrix. In the LDPC code, data may be encoded through a multiplication operation of message bits and the generation matrix. Generally, in communication specification using the LDPC code, the parity check matrix may be used instead of the generation matrix. For example, data may be encoded using the parity check matrix.
[0081] The linear block code may be generated based on a generation matrix G or a parity check matrix H. The linear block code is configured such that the product Hc.sup.t of a transpose matrix of a codeword c and the parity check matrix has a value of 0 with respect to the whole codeword c. Decoding of the LDPC code may be performed, as identical to other linear block codes, by checking whether the product of the parity check matrix H and the codeword c is ‘0’.
[0082] For example, decoding of the LDPC code may be performed by checking whether the product (i.e., Hc.sup.t) of a transpose matrix of the codeword c and the parity check matrix is 0.
[0083] In the LDPC code, most elements of the parity check matrix are 0 and there are a small number of elements having values other than 0 as compared with the length of the code. Therefore, the LDPC code may perform iterative decoding based on probability. In an initially proposed LDPC code, the parity check matrix has been defined in a non-systematic form and a small weight has been uniformly applied to rows and columns of the parity check matrix. A weight may mean the number of 1s included in a row or a column.
[0084] As described above, the density of elements having values other than 0 in a parity check matrix H of the LDPC code is low. Accordingly, the LDPC code has performance approximating to limits of Shannon's theorem while decoding complexity is kept low. Due to high error correction performance and low decoding complexity of this LDPC code, the LDPC code is suitable for high-speed wireless communication.
[0085] Structured LDPC code
[0086] As described previously, the parity check matrix H may be used to generate the LDPC code. The matrix H includes a large number of 0s and a small number of 1s. The size of the matrix H may be 10.sup.5 bits or more. Many memories may be needed to express the H matrix.
[0087]
[0088] In the structured LDPC code, elements of the matrix H may be expressed as subblocks of a predetermined size as illustrated in
[0089] In the IEEE 802.16e standard specification, a subblock is indicated by one integer index, so that the size of memories for expressing the matrix H may be reduced. Each subblock may be, for example, a permutation matrix of a predetermined size.
[0090]
[0091] For example, referring to the IEEE 802.16e standard specification, if the size of codewords is 2304 and a code rate 2/3, a model matrix used to encode/decode the LDPC code is as illustrated in
[0092] In
[0093]
[0094] For example,
[0095] Generally, encoding of the LDPC code may be performed by generating a generation matrix G from a parity check matrix H and encoding information bits using the generation matrix. To generate the generation matrix G, Gaussian reduction is performed with respect to the parity check matrix H to configure a matrix in the form of [P.sup.T: I]. If the number of the information bits is k and the size of encoded codewords is n, a matrix P is a matrix including k rows and n-k columns and a matrix I is an identity matrix having a size of k. [97] If the parity check matrix H has the form of [P.sup.T: I], the generation matrix G has a form of [I : P.sup.T]. If k information bits are encoded, the encoded information bits may be expressed as a matrix x of one row and k columns. In this case, a codeword c is xG having a form of [x : xP]. Herein, x denotes an information part (or a systematic part) and xP denotes a parity part.
[0096] In addition, the information bits may be encoded directly from the matrix H without deriving the matrix G by designing the matrix H as a specific structure without using Gaussian reduction. For the structures of the above-described matrix H and matrix G, the product of the matrix G and a transpose matrix of the matrix H has a value of 0. Using such a characteristic and a relationship between the information bits and the codeword, the codeword may be obtained by adding parity bits to the end of the information bits.
[0097]
[0098] In a communication system, encoded data includes noise in a process of passing through a radio channel. Accordingly, a codeword c is expressed as a codeword c′ including noise in a receiver. The receiver performs demultiplexing and demodulation with respect to a received signal (step S1000) and initializes decoding parameters (step S1005). The receiver updates a check node and a variable node (steps S1010 and S1015) and performs syndrome check (step S1020). That is, a decoding procedure may be ended by checking whether c′H.sup.T is 0. If c′H.sup.T is 0, the first k bits from c′ may be determined as the information bits x. If c′H.sup.T is not 0, the information bit x may be recovered by searching for c′ satisfying the condition that c′H.sup.T is 0 based on a decoding scheme such as a sum-product algorithm.
[0099]
[0100] In
[0101] As described above, in order to successfully perform decoding, the product of the parity check matrix H and a transpose matrix of the codeword matrix c should have a value of ‘0’. Accordingly, values of variable nodes connected to one check node should be 0. Consequently, in
[0102] Quasi-cyclic (QC) LDPC code
[0103] Hereinafter, a QC LDPC code will be described.
[0104] To acquire excellent performance of an LDPC code, a parity check matrix (or a generation matrix) may be randomly configured. The performance of the LDPC code may be improved as the length of a block increases. In decoding, the performance of the LDPC code may be improved through an optimal decoding method. However, due to complexity of optimal decoding, a belief propagation algorithm is used to decode the LDPC code. In addition, the randomly generated parity check matrix of the LDPC code has excellent performance but is very complicated in implementation and representation thereof. Hence, the above-described structured LDPC code is widely used. As the structured LDPC code, a QC LDPC code is widely used.
[0105] The QC LDPC code includes a zero matrix having a size of QxQ and a circulant permutation matrix (CPM) having a size of Q×Q. The CPM Pa has a form obtained by shifting an identity matrix having a size of Q×Q by a circular shift value a (refer to
[0106]
[0107] In the following embodiment, a multi-edge QC LDPC code may be used. For example, as illustrated in
[0108] In the above equation, A denotes a high rate code having a structure similar to QC-IRA and 0 denotes a zero matrix. In addition, C and I denote an information part of the single parity check code and a parity part of the single parity check code, respectively. In
[0109] In
[0110] In this case, the size of P may be determined in consideration of a maximum number of iterations that an LDPC decoder can perform. In some embodiments of the present invention, the maximum number of iterations of the decoder may be 50 and then the size of P may be 2Z. However, the present invention is not limited to such a structure. In
[0111] For configuration of a QC LDPC code of a desired size, a lifting operation may be performed. Lifting is used to acquire a parity check matrix of a desired size from a preset parity check matrix. Various code lengths may be supported by changing a lifting size. For example, floor lifting or modulo lifting may be used. For example, a parity check matrix according to modulo lifting may be obtained as indicated by the following equation.
[0112] In the above equation, Q denotes a lifting size and a.sub.ij denotes a shift value of the i-th row and the j-th column of a preset parity check matrix (refer to
[0113]
[0114] The length of data bits capable of being substantially transmitted may be determined based on the size of available physical resources. Accordingly, a codeword having a code rate corresponding to the size of available physical resources may be generated through rate matching. For example, a shortening scheme or puncturing scheme may be used for rate matching. The shortening scheme may be performed, for example, by removing a part of an information part of the codeword. Since a part of information bits is reduced, a code rate may be reduced by the shortening scheme. The puncturing scheme may be performed, for example, by puncturing at least a part of a parity of the codeword. In puncturing, since the rate of the information bits increases, the code rate may increase. Therefore, theoretically, a codeword corresponding to an arbitrary code rate may be generated through a combination of the shortening scheme and the puncturing scheme.
[0115] Shortening and puncturing performance may be determined according to an order of shortened or punctured bits. However, in the QC LDPC code, an order of bit puncturing within a unit block of Q×Q does not affect performance. Therefore, after interleaving of the unit of the lifting size Q for a parity block is performed, puncturing may be performed from the last part of parity bits. In addition, shortening may be performed from the last part of the information bits.
[0116] Meanwhile, if the size of physical resources is greater than the length of an encoded LDPC code, rate matching may be performed through an iteration scheme.
[0117] Referring to
[0118] As described above, the shortening scheme may be applied for rate matching. In this case, the already inserted 0-bit block may be removed (step S1304). In addition, for puncturing described later, interleaving (permutation) of a lifting size unit may be performed with respect to the parity block. In addition, for rate matching, the last part of the parity block may be punctured (step S1305).
[0119] A 5G wireless LAN system supports a transmission rate from a maximum of 20 Gbps to a minimum of a few tens of bps (up to 40 bps in LTE). As such, a transmission environment supported by the 5G wireless LAN system is diverse. To efficiently encode information in such various environments, the LDPC code used for encoding should support various code rates. However, when information is encoded using one LDPC code as performed conventionally, a problem of inefficiency arises in terms of coping with the various communication environments.
[0120] The present invention proposes that the LDPC code use multiple base codes in order to provide effective encoding in various communication environments.
[0121] A few base codes proposed in the present invention may be base codes favorable for a large TB (large block) and a large amount of throughput or base codes favorable for small TB (small block) and short latency.
[0122] Unlike the turbo code, the LDPC code is disadvantageous in that rows of the matrix H to be processed increase as a code rate is lowered. For example, when the code rate of the LDPC code is 8/9, the number of rows to be processed by an encoder is 6, whereas, when the code rate is reduced to 2/3 under the same condition, the number of rows to be processed by the encoder increases by 18. As the number of rows to be processed increases threefold, latency also increases threefold.
[0123] In order to overcome these problems, the present invention proposes introducing an additional short code for encoding a small TB. As such multiple base codes are introduced, gain can be obtained in terms of decoding latency and power consumption.
[0124] A data packet transmitted between a BS and a UE has different characteristics depending upon whether the data packet is transmitted on uplink or downlink. When the data packet is transmitted on downlink, since the data packet transmitted on downlink has a relatively high code rate as compared with the data packet transmitted on uplink, large TB blocks occupy most of the traffic. Meanwhile, when the data packet is transmitted on uplink, relatively small TB blocks occupy most of the traffic.
[0125] In consideration of these characteristics, when an encoder of the transmitter encodes information using an LDPC base code suitable for each communication environment, latency can be effectively reduced.
Embodiment 1-1
[0126] A first base code proposed by the present invention may be used for a large CB and high throughput and a second base code may be used for a small CB and low latency. Table 1 shown below proposes several parameters of the first base code and the second base code. However, the features of the present invention are not limited to the parameters proposed by the table.
TABLE-US-00001 TABLE 1 Base Size Code Max Kb, max/ Lifting code M.sub.b × N.sub.b Rate P.sub.b information Kb, min Values (Z) BC1 6 × 38 0.89 2 8192 32/24 256, 192, 144, 108, 82 BC2 6 × 16 0.71 2 2040 10/6 204, 128, 88, 56, 36, 24, 16, 10, 6
[0127] In the above table, Mb denotes the size of a parity of each base code and Nb denotes the size of a codeword of each base code. In addition, Pb denotes the puncturing size of each base code. Kb,max denotes a maximum value of the number of columns of each base code and Kb,min denotes a minimum value of the number of columns of each base code.
[0128] A type of a lifting value may be determined in consideration of maximum information shortening. In this case, the amount of maximum shortening may be determined as (Kb,max−Kb, min) * Z. If there are a large number of types of a lifting value, a shortening size is reduced so that stable performance can be secured but implementation complexity increases. That is, there is a tradeoff between the types of the lifting value and the shortening size.
[0129] In some embodiments of the present invention, the lifting value may be set such that shortening in the case of the first base code does not exceed 8Z and shortening in the case of the second base code does not exceed 4Z. If the lifting value is configured as described above, performance deviations for various CB sizes can be minimized.
[0130] Table 2 shows some lifting values for the first base code according to an embodiment of the present invention.
TABLE-US-00002 TABLE 2 number of column for base code 32 30 28 27 26 25 24 Lifting 256 8192 7680 7168 6912 6656 6400 6144 values 192 6144 5760 5376 5184 4992 4800 4608 144 4608 4320 4032 3888 3744 3600 3456 108 3456 3240 3024 2916 2808 2700 2592 82 2624 2460 2296 2214 2132 2050 1968
[0131] For example, if a CB size is given as 6140, it may be considered that 256 is selected as the lifting value and 2052=8192−6140 (a column value is 32) is set as a shortening value and 192 is selected as the lifting value and 4=6144−6140 (a column value is 32) is set as the shortening value. Although there are advantages and disadvantages of each case, when 2052 is set as the shortening value, performance degradation caused by shortening may occur.
[0132] Table 3 shows some lifting values of the second base code according to another embodiment of the present invention. However, the features of the present invention are not limited to the lifting values disclosed in Table 2 and Table 3.
TABLE-US-00003 TABLE 3 number of column for base code 10 9 8 7 6 Lifting 204 2040 1836 1632 1428 1224 values 128 1280 1152 1024 896 768 88 880 792 704 616 528 56 560 504 448 392 336 36 360 324 288 252 216 24 240 216 192 168 144 16 160 144 128 112 96 10 100 90 80 70 60 6 60 54 48 42 36
Embodiment 1-2
[0133] The first base code and the second base code according to another embodiment of the present invention may be proposed when CB sizes input to the LDPC code overlap.
[0134] Table 4 and Table 5 show several parameters of the first base code and the second base code according to another embodiment of the present invention.
TABLE-US-00004 TABLE 4 Base Size Code Max Kb, max/ Lifting Code M.sub.b × N.sub.b Rate P.sub.b information Kb, min Values (Z) BC1 6 × 38 0.89 2 8192 32/24 256, 192, 144, 108, 81, 61, 46, 35, 27, 21 BC2 6 × 16 0.71 2 2560 10/6 256, 156, 96, 64, 40, 25, 16, 10, 6
[0135] Table 6 and Table 7 show several lifting values of the first base code and the second base code, respectively, according to another embodiment of the present invention.
TABLE-US-00005 TABLE 5 number of column for code block 32 30 28 27 26 25 24 Lifting 256 8192 7680 7168 6912 6656 6400 6144 values 192 6144 5760 5376 5184 4992 4800 4608 144 4608 4320 4032 3888 3744 3600 3456 108 3456 3240 3024 2916 2808 2700 2592 81 2592 2430 2268 2187 2106 2025 1944 61 1952 1830 1708 1647 1586 1525 1464 46 1472 1380 1288 1242 1196 1150 1104 35 1120 1050 980 945 910 875 840 27 864 810 756 729 702 675 648 21 672 630 588 567 546 525 504
TABLE-US-00006 TABLE 6 number of column for code block 10 9 8 7 6 Lifting 256 2560 2304 2048 1792 1536 values 156 1560 1404 1248 1092 936 96 960 864 768 672 576 64 640 576 512 448 384 40 400 360 320 280 240 25 250 225 200 175 150 16 160 144 128 112 96 10 100 90 80 70 60 6 60 54 48 42 36
[0136] When comparing Table 5 with Table 6, it may be appreciated that both the first base code and the second base code are applied when a CB size is 504 to 2560. Hereinafter, when base codes which can be selected according to CB sizes overlap (when CB sizes which can be supported by the respective base codes overlap), a method of selecting a base code for the LDPC code is proposed. The method of selecting the base code will be described below in detail. Separately from this method, the base code may be selectively selected according to a situation or accommodation capacity of the UE.
[0137] A method of selecting a plurality of lifting values which can be used in each base code will now be described in more detail. First, a maximum lifting value Zmax capable of being supported by a base code is selected and small lifting values may be sequentially selected. Next, Kb,min may be selected in consideration of a maximum shortening amount which can be supported by the base code. In the above example of the first base code, the case in which Zmax=256 and Kb,min=24 is shown.
[0138] Next, an i-th value of Z corresponding to the following equation may be selected as the lifting value of a corresponding base code.
(Kb,min+1)*Z(i−1)>(Kb,max)*Z(i)>=(Kb,min)*Z(i−1), [Equation 5]
[0139] In the above equation, n denotes a value i when the value increases up to a minimum lifting value desired to be supported.
[0140] Additionally, a plurality of lifting values supported by a base code may be determined according to the following equation.
Z(i)=ceil(Z(i−1)*Kb,min/Kb,max) [Equation 6]
[0141] In the above equation, ceil(a) denotes a ceiling function of a.
Embodiment 1-3
[0142] Hereinafter, another embodiment for selecting a plurality of lifting values or a lifting set will be described. A plurality of lifting values capable of being used in a base code may be selected to be in the form of A*2{circumflex over ( )}B.
[0143] Table 7 shows a plurality of lifting value capable of being used by a base code of an LDPC code according to another embodiment of the present invention.
TABLE-US-00007 TABLE 7 B 1 2 3 4 5 A 3 6 12 24 48 96 4 8 16 32 64 128 5 10 20 40 80 160 6 12 24 48 96 192 7 14 28 56 112 224 8 16 32 64 128 256
[0144] Table 8 shows several parameters of the first base code and the second base code according to another embodiment of the present invention.
TABLE-US-00008 TABLE 8 Base Size Code Max Kb, max/ Lifting Code M.sub.b × N.sub.b Rate P.sub.b information Kb, min Values (Z) BC1 6 × 38 0.89 2 8192 32/25 256, 224, 192, 160, 128, 112, 96, 80, 64, 56, 48, 40, 32, 28, 24, 20, 16 BC2 6 × 16 0.71 2 2560 10/8 256, 224, 192, 160, 128, 112, 96, 80, 64, 56, 48, 40, 32, 28, 24, 20, 16, 14, 12, 10, 8, 6
Embodiment 2-1
[0145] Hereinafter, a method of selecting a base code and a lifting value from multiple LDPC codes according to an embodiment of the present invention will be described.
[0146] As described above, if a TB size (TBS) is given on channel coding, a transmitter may segment a TB into CBs based on an input size of an encoder. In this case, in order to perform encoding suitable for an obtained CB size (CBS), the above-described matrix H should be determined. To determine the matrix H, the transmitter should set the base code and the lifting value.
[0147] Hereinafter, a method for the transmitter to select the base code and the lifting value in the above-described situations of Embodiments 1-1 to 1-3 will be described.
[0148] As in Embodiment 1-1, if a CBS generated by the transmitter does not overlap with a CBS which is supportable by the first base code and a CBS supportable by the second base code, the transmitter may select the base code based on a preset CBS. Referring to Table 2 and Table 3, if a CBS exceeds 2040, the transmitter may select the first base code and, otherwise (when the
[0149] CBS is less than 2040), the transmitter may select the second base code. However, the features of the present invention are not limited to these numbers.
[0150]
[0151]
[0152] CBS when the CBS generated by the transmitter overlaps with the CBS which is supportable by the first base code and the CBS supportable by the second base code as in Embodiment 1-2.
[0153] In
[0154] In addition, in
[0155] In Embodiment 1-2 for example, L1 max=8192, L2 max=2560, L1 min=504, and L2 min=36. However, the technical sprit and scope of the present invention are not limited to these numbers.
[0156] According to a graph illustrated in
[0157] If a characteristic of the CB generated by the transmitter is located in a diagonal real line region, i.e., a CBS and a code rate overlap with those of the first base code and second base code, a method for the transmitter to select a base code may be problematic. The present invention proposes a method for the transmitter to select the second base code.
[0158] Specifically, the transmitter may determine a TBS based on a given modulation and coding scheme (MC S) and a resource block (RB) with respect to encoding target information. Next, the transmitter may obtain a CBS k and a code rate r through CB segmentation. Thereafter, the transmitter may select a final base code through a condition clause or code interpretation, given according to Table 9 below .
TABLE-US-00009 TABLE 9 If(r > r2_max) Select BC1 Elseif(K > L2_max) Select BC1 ELSE Select BC2 END
[0159] That is, if the code rate r is greater than the preset code rate r2 max or the CBS k is greater than the preset CBS L2 max, the transmitter may select the first base code as a base code of the LDPC code and, otherwise, the transmitter may select the second base code.
[0160] In principle, if an MCS which is supportable by the second base code is determined, the transmitter may select the base code by prioritizing the second base code rather than the first base code. However, the features of the present invention are not limited to such a configuration.
[0161] The base code that the LDPC code uses may be configured through additional signaling for the UE or the base code may be selected according to accommodation capability of the UE.
[0162] If the base code is selected by the transmitter, the transmitter may select the lifting value Z according to the following equation.
Z.Math.K.sub.b, max≥K>Z.Math.K.sub.b, min [Equation 7]
[0163] In the right term of Equation 7, it is desirable not to include an equal sign. If the equal sign is included, two selectable lifting values occur.
Embodiment 2-2
[0164] According to still another embodiment of the present invention, in selecting the base code, the transmitter may be configured to select the second base code even with respect to a CB having a higher code rate than a reference code rate of the second base code. In this case, the second base code may support a higher code rate than the reference code rate (0.71 according to Embodiment 1-2) through parity puncturing. For example, when up to the fifth column of a parity can be used, a code rate may be about 10/15 (0.77).
[0165] According to this embodiment, if a CBS is less than L2 max and a code rate is lower than rp (where rp>r2 max) which is higher than a conventional reference code rate, the transmitter may select the second base code to perform LDPC coding.
[0166] In Embodiment 1-2, if a CBS is less than 2560 and a code rate is lower than 0.77, the transmitter may select the second base code to perform LDPC coding. In this case, since the transmitter may use a larger lifting value relative to a conventional code rate, gain can be obtained in terms of latency. In this case, M1 parity permutation may be needed for performance improvement.
Embodiment 3
[0167]
[0168] Referring to
[0169] The processor 13 of the BS 10 according to an example of the present invention may be configured to receive channel state information according to the examples proposed in the present invention. The processor 13 of the BS 10 processes information received by the BS 10 and information to be transmitted to the outside of the BS 10. The memory 14 may store the processed information for a predetermined time and may be replaced with a component such as a buffer (not shown).
[0170] Referring to
[0171] The processor 23 of the UE 10 according to an example of the present invention may be configured to transmit channel state information according to the examples proposed in the present invention. The processor 23 of the UE 20 processes information received by the UE 20 and information to be transmitted to the outside of the UE 10. The memory 24 may store the processed information for a predetermined time and may be replaced with a component such as a buffer (not shown).
[0172] The detailed configurations of the UE 10 may be implemented such that the above-described various embodiments of the present invention are independently applied or two or more embodiments of the present invention are simultaneously applied. Redundant matters will not be described herein for clarity.
[0173] In described various embodiments of the present invention, while the BS has been mainly described as an example of a downlink transmission entity or an uplink reception entity and the UE has been mainly described as an example of a downlink reception entity or an uplink transmission entity, the scope of the present invention is not limited thereto. For example, a description of the BS may be identically applied when a cell, an antenna port, an antenna port group, a remote radio head (RRH), a transmission point, a reception point, an access point, or a relay is a downlink transmission entity to the UE or an uplink reception entity from the UE. In addition, the principle of the present invention described through various embodiments of the present invention may be identically applied to a relay acting as a downlink transmission entity to the UE or an uplink reception entity from the UE, or a relay acting as an uplink transmission entity to the BS or a downlink reception entity from the BS.
[0174] The embodiments of the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof.
[0175] In a hardware configuration, the method according to the embodiments of the present invention may be implemented by one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, or microprocessors.
[0176] In a firmware or software configuration, the method according to the embodiments of the present invention may be implemented in the form of modules, procedures, functions, etc. performing the above-described functions or operations. Software code may be stored in a memory unit and executed by a processor. The memory unit may be located at the interior or exterior of the processor and may transmit and receive data to and from the processor via various known means.
[0177] The embodiments described above are combinations of components and features of the present invention in a prescribed form. Each component or feature may be considered selective unless explicitly mentioned otherwise. Each component or feature may be executed in a form that is not combined with other components and features. Further, some components and/or features may be combined to configure an embodiment of the present invention. The order of operations described in the embodiments of the present invention may be changed. Some components or features of an embodiment may be included in another embodiment or may be substituted with a corresponding component or feature of the present invention. It is obvious to those skilled in the art that claims that are not explicitly cited in each other in the appended claims may be presented in combination as an embodiment of the present invention or included as a new claim by subsequent amendment after the application is filed.
[0178] It will be apparent to those skilled in the art that the present invention can be embodied in other specific forms without departing from the spirit and essential characteristics of the invention. Thus, the above embodiments are to be considered in all respects as illustrative and not restrictive. The scope of the invention should be determined by reasonable interpretation of the appended claims and all changes which come within the equivalent scope of the invention are within the scope of the invention.
INDUSTRIAL APPLICABILITY
[0179] The embodiments of the present invention are applicable to various wireless access systems and broadcast communication systems. The wireless access systems include, for example, a 3GPP system, a 3GPP2 system, and/or an IEEE 802.xx system. The embodiments of the present invention may be applied not only to the wireless access systems but also to all technical fields employing the wireless access systems.